mirror of
https://github.com/webinstall/webi-installers.git
synced 2026-02-14 09:39:51 +00:00
72 lines
2.9 KiB
PowerShell
72 lines
2.9 KiB
PowerShell
#!/usr/bin/env pwsh
|
|
|
|
Write-Output "Installing WSL (Windows Subsystem for Linux) ..."
|
|
Write-Output ""
|
|
Write-Output "Security: requires administrator approval to install"
|
|
|
|
IF ($null -eq $Env:WEBI_HOST -or $Env:WEBI_HOST -eq "") { $Env:WEBI_HOST = "https://webinstall.dev" }
|
|
|
|
# From https://devblogs.microsoft.com/scripting/use-a-powershell-function-to-see-if-a-command-exists/
|
|
Function Test-CommandExist {
|
|
Param ($command)
|
|
$oldPreference = $ErrorActionPreference
|
|
$ErrorActionPreference = 'stop'
|
|
try { if (Get-Command $command) { RETURN $true } }
|
|
Catch { RETURN $false }
|
|
Finally { $ErrorActionPreference = $oldPreference }
|
|
}
|
|
|
|
|
|
# $MYPWD = (Get-Item .).FullName
|
|
& curl.exe -fsSA "MS" -o "$Env:TEMP\install-wsl2.ps1" "$Env:WEBI_HOST/packages/wsl/install-wsl.ps1"
|
|
powershell -Command "Start-Process cmd -Wait -Verb RunAs -ArgumentList '/c cd /d %CD% && powershell -ExecutionPolicy Bypass $Env:TEMP\install-wsl2.ps1'"
|
|
|
|
IF (!(Test-CommandExists wsl)) {
|
|
Write-Output "Warning: Skipping 3 of 5: Reboot Required to install WSL 2 !!"
|
|
}
|
|
|
|
Write-Output ""
|
|
IF ((Test-Path -Path "$Env:UserProfile\Downloads\webi\Ubuntu_2004_x64.appx" )) {
|
|
Write-Output "Skipping 4 of 5: Ubuntu Linux 20.04 already installed"
|
|
}
|
|
ELSE {
|
|
Write-Output "Installing 4 of 5 Ubuntu Linux 20.04 (for WSL 1 and WSL 2) ..."
|
|
curl.exe -fL -o "$Env:UserProfile\Downloads\webi\Ubuntu_2004_x64.appx.part" https://aka.ms/wslubuntu2004
|
|
& Move-Item "$Env:UserProfile\Downloads\webi\Ubuntu_2004_x64.appx.part" "$Env:UserProfile\Downloads\webi\Ubuntu_2004_x64.appx"
|
|
Add-AppxPackage "$Env:UserProfile\Downloads\webi\Ubuntu_2004_x64.appx"
|
|
}
|
|
|
|
Write-Output ""
|
|
Write-Output ""
|
|
Write-Output ""
|
|
Write-Output "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
Write-Output "!!! !!!"
|
|
Write-Output "!!! ACTION REQUIRED !!!"
|
|
Write-Output "!!! READ CAREFULLY! !!!"
|
|
Write-Output "!!! !!!"
|
|
Write-Output "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
|
|
IF (!(Test-CommandExists wsl)) {
|
|
Write-Output ""
|
|
Write-Output "WSL 2 was NOT installed yet. FOLLOW these instructions:"
|
|
Write-Output ""
|
|
Write-Output " 1. REBOOT you computer to finish the WSL 1 install"
|
|
Write-Output " (either click Start Menu => Restart, or run 'shutdown /r /t 5')"
|
|
Write-Output ""
|
|
Write-Output " 2. RE-RUN this WSL 2 installer"
|
|
Write-Output " (WSL 2 cannot finish installing until the WSL 1 install is complete)"
|
|
Write-Output ""
|
|
Write-Output " 3. WSL 2 must be enabled manually. See https://webinstall.dev/wsl2"
|
|
Write-Output ""
|
|
|
|
Exit
|
|
}
|
|
|
|
Write-Output ""
|
|
Write-Output "You must ALSO run UBUNTU LINUX from the START MENU to complete the install."
|
|
Write-Output ""
|
|
Write-Output " - Select Ubuntu Linux from the Search menu or Start Menu"
|
|
Write-Output " - Wait for the initialization to complete"
|
|
Write-Output " - Choose a username (we recommend 'app') and a password"
|
|
Write-Output ""
|