DEV Community

3

WSL: Instalando Linux no Windows

Seguindo a linha de quem melhor pode explicar sobre algo é seu criador, vamos definir WSL como:

"O Subsistema do Windows para Linux permite que os desenvolvedores executem um ambiente GNU/Linux, incluindo a maioria das ferramentas de linha de comando, utilitários e aplicativos, diretamente no Windows, sem modificações e sem a sobrecarga de uma máquina virtual tradicional ou instalação dualboot."

Essa explicação e mais detalhes estão disponíveis na documentação oficial, que como sempre recomendo a leitura.

Nesse artigo, não vamos entrar muito no mérito de como utilizar ou o que exatamente é ele, e sim em como podemos fazer a instalação de forma automatizada pelo Powershell.

Eu escrevi esse script para uma aula de Sistemas Operacionais da Fatec, como um tutorial de instalação do Ubuntu já que não queria utilizar uma maquina virtual e me parecia interessante mostrar que dentro do Windows 10 podemos fazer coisas bem legais.

Inicialmente, vamos verificar se já temos o WSL disponível no sistema. Caso ela não esteja, fazemos a instalação e orientamos que o usuário reinicie o computador para que ela fiquei totalmente habilitada.

Depois disso, vamos fazer o download do sistema operacional, que em nosso exemplo vai ser o Ubuntu 1604. Salvamos o artefato como um APPX conforme está disponível no site da Microsoft.

Concluído o download, fazemos a instalação e apagamos o arquivo.

# Configuracoes
$nomeSO = "Ubuntu"
$urlDownload = "https://aka.ms/wsl-ubuntu-1604"
$pastaDownload = "$env:USERPROFILE\Downloads"
$caminhoAppx = "$pastaDownload\$nomeSO.appx"
# Inicia o procedimento
Clear-Host
try {
# Verifica se o WSL esta instalado
$WSL = Get-WindowsOptionalFeature -Online -FeatureName "VirtualMachinePlatform"
$WslStatus = $WSL.State
if ($WslStatus -eq "Disabled") {
Write-Host "Precisamos instalar o sub sistema do Linux"
Write-Host "Iniciando instalacao do WSL"
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux -Norestart
Write-Host "Com a instalacao finalizada, precisamos reiniciar o computador para concluir"
Write-Host "Reinicie e rode novamente esse script"
Pause
exit
} else {
Write-Host "WSL ja instalado, vamos seguir com o $nomeSO"
}
# Faz o download do Ubuntu
Write-Host "Fazendo o download do $nomeSO"
Invoke-WebRequest -Uri "$urlDownload" -OutFile "$caminhoAppx" -UseBasicParsing
# Faz a instalacao
Write-Host "Fazendo a instalacao"
Add-AppxPackage "$caminhoAppx"
Write-Host "Instalacao concluida"
# Removendo arquivo de instalacao
Write-Host "Limpando arquivos de instalacao"
Remove-Item -Path "$caminhoAppx" -force
# Encerrando
Write-Host "Acesse o $nomeSO no menu iniciar"
Pause
exit
}
catch {
# Mostra mensagem de erro
Write-Host "Erro ao fazer o procedimento"
Write-Host "Erro: $_.Exception.Message"
}
view raw WSL.ps1 hosted with ❤ by GitHub

Assim deixamos disponível um terminal Linux para utilização dentro do Windows 10.

Recomendo isso caso precise treinar comandos ou brincar um pouco com o sistema. No caso da aula, serviu ao proposito de treinar alguns comandos.

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

Top comments (0)

The Most Contextual AI Development Assistant

Pieces.app image

Our centralized storage agent works on-device, unifying various developer tools to proactively capture and enrich useful materials, streamline collaboration, and solve complex problems through a contextual understanding of your unique workflow.

👥 Ideal for solo developers, teams, and cross-company projects

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay