O Tutorial Definitivo: WSL2

O WSL2 (Windows Subsystem for Linux 2) foi lançado para Windows 10 a algum tempo e a pergunta que não quer calar: Valeu a pena?


| Se você apoia nosso site, desative o AdBlock quando visitá-lo, inclusive em Mobile!
Os anúncios são poucos e não invasivos. Se quiser contribuir com nosso trabalho, clique em qualquer banner de sua preferência, exceto dos Parceiros. 
Mais detalhes clicando aqui.


1. Introdução ao WSL2

Em maio de 2020, a Microsoft® lançou a versão 2004 (build 19041) do Windows® 10 e com isso veio o subsistema Windows® para Linux 2 (WSL2). O WSL2, ao contrário de seu predecessor WSL, é um kernel Linux completo capaz de ser executado dentro do sistema Windows®.

Nós já abordamos a instalação e configuração do WSL2 aqui no site, porém esta publicação tem como foco como usar aplicativos de interface gráfica do usuário (GUI), apesar de ainda não haver um suporte oficial.

Além do mais, se você já leu a publicação anterior, desconsidere-a: Este é o tutorial definitivo com informações e detalhes sobre o WSL2!

2. Pré-Requisitos

Apesar de ser universal, e executar em todas as versões do Windows®, inclusive no Windows 10 Home Single Language, o WSL2 exige suporte á Maquinas Virtuais para funcionar adequadamente.

Ou seja, se sua BIOS não tem suporte a AMD-v/Intel VT-x ou AMD-Vi/Intel VT-d, não vai funcionar.

3. Configurando o WSL2

Em primeiro lugar, precisamos instalar o WSL e definir o WSL2 como padrão. Você precisará abrir um PowerShell como administrador e, em seguida, copiar, colar e executar os 2 comandos abaixo.

Os comandos devem ser executados separadamente pressionando a tecla Enter/Return no PowerShell após cada operação de colagem:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

E este:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Após a conclusão, você precisará reiniciar seu sistema antes de prosseguir com a próxima etapa.

Ao voltar, entre no site https://aka.ms/wsl2kernel e baixe o instalador do componente kernel que vai agregar o Linux ao Windows. Se tiver dúvidas clique aqui!

Após instalar, execute este comando como Administrador no PowerShell:

wsl –set-default-version 2

Agora você tem o WSL2 instalado e configurado em seu sistema!

4. Instalando uma distro

Agora para baixar uma distro Linux, vá até a Microsoft® Store e pesquise por “Linux”. Eu recomendo começar com o Ubuntu, mas se você já possui experiência com o pinguim, há diversas opções: Ubuntu 20.04, Kali Linux, Debian, SUSE Linux, SUSE Enterprise, Alpine, Fedora, etc.

Para o restante desta publicação estarei usando uma instalação do Ubuntu e algumas etapas posteriores podem não se aplicar a outra distribuição Linux.

  1. Selecione o “Ubuntu 20.04 LTS” na Microsoft Store e clique em “Instalar”. Normalmente essa etapa não requer login com uma conta da Microsoft®
  2. Agora encontre o ícone do Ubuntu, pode estar nos aplicativos “adicionados recentemente” ou simplesmente pressione o botão do Windows e pesquise por Ubuntu no menu iniciar.
  3. Clique no ícone do Ubuntu e você verá uma janela do CMD se abrir onde a instalação será continuada. Este processo levará alguns minutos e você deverá fornecer um nome de usuário e uma senha.
    Atento! O CMD costuma “travar” e não continua o processo de configuração; simplesmente aperte Enter 1x quando surgir “Installing, this may take a few minutes…” para que você logo veja a solicitação para inserir usuário e senha quando for pertinente.

Assim que terminar, você irá para a interface Terminal BASH do Ubuntu onde poderá dar apt update/upgrade, apt install <pacote>, etc normalmente.

Não vou dar detalhes desta etapa, aqui você já deve ter alguma familiaridade com o terminal e sabe os comandos mais básicos.

4.1 Informações sobre o WSL2

Com este comando no powershell você confere que o Ubuntu 20.04 LTS está de fato executando no WSL2 e não no WSL1!

wsl -l -v

Você verá algo como:

  • NAME ———- STATE—-VERSION
    Ubuntu-20.04 Running 2

Ou seja, já está instalado e configurado no WSL2!

Para continuar, é pertinente que o sistema esteja devidamente atualizado e com os pacotes padrão para configurações “avançadas”. Entre eles:

  • sudo apt update
  • sudo apt upgrade
  • sudo apt install build-essential

5. Configurando a GUI no Linux

O WSL2 atualmente não oferece suporte a interfaces gráficas de usuário, mas podemos contornar isso comunicando ao Ubuntu o Servidor X no Windows.

Vamos começar instalando um ambiente de desktop.

Alguns ambientes de desktop (por exemplo, gnome 3) podem ser executados em WSL2, mas são executados com erros e eu não os recomendaria. Em vez disso, instalaremos um desktop leve junto com alguns de seus requisitos.

Existem duas opções leves para o Ubuntu: mate ou xfce4. Instalaremos o xfce4 instalando o desktop xubuntu e depois algumas bibliotecas gtk2, mas sinta-se à vontade para instalar o desktop ubuntu-mate se preferir.

sudo apt install -y tasksel
sudo tasksel install xubuntu-desktop
sudo apt install gtk2-engines

Durante a instalação do Xubuntu Desktop uma janela roxa aparecerá, apenas aguarde a conclusão, o que pode levar alguns minutos.

Agora precisamos exportar algumas variáveis ​​para permitir que o Linux saiba onde procurar o servidor X no Windows. Copie e execute o seguinte em seu terminal Linux:

$ export DISPLAY=$(awk ‘/nameserver / {print $2; exit}’ /etc/resolv.conf 2>/dev/null):0

$ export LIBGL_AWAYS_INDIRECT=1

Se não quiser digitá-los toda vez que abrir sua distribuição, você deve copiar e colar esses comandos no final do arquivo .bashrc em seu diretório inicial /home/USUARIO. Você pode usar os editores nano ou vim para abrir o arquivo .bashrc:

$ nano ~ / .bashrc

Uma solução alternativa, você também pode criar um arquivo chamado /etc/sudoers.d/dbus como super usuário e adicionar o seguinte usando o seu nome de usuário:

SEU_USUARIO ALL = (root) NOPASSWD: /etc/init.d/dbus

Isso trará mais riscos á segurança do sistema mas deve ser bom para a maioria em caso de problemas com os parâmetros em .bashrc.

Isso conclui a configuração da sua distribuição Linux.

5.1 Servidor X no Windows 10

Baixe, instale e inicie o VcXsrv no Windows.
Ao instalar, pode marcar a opção FULL para instalar todos os recursos.

Após instalado, execute o atalho LaunchX que está na sua área de trabalho.

Você terá uma escolha de quatro opções de janela de exibição. Vamos escolher ‘Multiple Windows’ por enquanto e pressione Avançar.

“Start no client” e aperte Avançar.

enter image description here

Mude as opções padrão: desmarque NATIVE OPENGL e marque a caixa DISABLE ACCESS CONTROL. Assim não verá problemas de permissão.

Antes de Finalizar, você pode salvar suas configurações para ajustes posteriores.

Você provavelmente será perguntado se deseja permitir que o VcXsrv acesse sua rede, você terá que clicar na opção ‘Rede pública’ e permitir através do Firewall do Windows ou qualquer outro firewall que você use.

Se tudo correu bem, você verá o ícone do X Server ao lado do indicador da bateria:

Agora volte para o seu terminal Linux.

5.2 De Volta ao Lar

Uma vez no terminal do Ubuntu, e presumindo que você seguiu todas as etapas acima, você deve ser capaz de executar aplicativos GUI digitando seus nomes no terminal e pressionando Enter.

Por exemplo, para executar o Firefox, basta instalá-lo dentro do Ubuntu com “sudo apt install firefox” e depois simplesmente executá-lo com:

$ firefox &

O ‘&’ após o nome do aplicativo o executa em segundo plano para que você ainda possa usar o terminal.

Se você optar por não executar aplicativos em segundo plano, terá que abrir um novo terminal se quiser fazer outras tarefas em seu sistema operacional Linux simultaneamente.

6. F.A.Q. sobre o WSL2

As perguntas que ninguém fez, mas você vai querer saber!

  • Com “df -h” vocês vão ver diversos pontos de montagem no sistema. Os tamanhos informados podem ficar incorretos, mas 1 desses pontos de montagem é o próprio Disco C:/ do Windows em “/mnt/c” semelhante ao visto no WINE.
  • No lado Windows, a raiz / se encontra em:
    \\wsl$
    Porém NÃO mexa na raiz do Linux usando o Windows! O Windows não suporta modificações diretas no Linux e acabará corrompendo o sistema Linux. Porém, o Linux sim, consegue manusear pastas e arquivos do Windows sem problemas.
  • Em contrapartida, o Windows suporta com o WSL2 a montagem de volumes inteiros EXT4, como informado aqui!
  • O Ubuntu é instalado e configurado com sistema de arquivos EXT4 por padrão.
  • Até a data desta publicação o Ubuntu 20.04 LTS executa sob o kernel Linux 4.19.128-microsoft-standard, um kernel compilado pela própria Microsoft® porém com blobs e pacotes proprietários para o devido funcionamento do WSL2. Ele está no repositório da Canonical®.
  • O consumo de RAM é estranho: O Linux informa pelo “free -h” um consumo baixo, de no máximo 100 MB. Porém o Windows aloca muito mais RAM para a máquina virtual do WSL2 á medida que seu uso aumento. Comandos como “apt install” consumirão a memória disponível.
  • A máquina virtual fica rodando constantemente e não há um meio direto para desliga-la. Via Windows, abra o Prompt de Comando como Administrador e execute: wsl –shutdown
    A memória consumida pelo WSL2 reservada á máquina virtual será liberada novamente!
  • O sistema operacional utiliza o Init como gestor de daemons e não o SystemD. Ou seja, comandos de sistema devem ser compatíveis com o Init, ou não funcionarão.
  • Alguns comandos do Windows são compartilhados dentro do terminal Linux. Por exemplo, se você digitar no terminal bash do WSL2 o comando “explorer .” observe a presença de um PONTO, esse comando vai abrir o Explorer.exe.
  • Alguns comandos podem ser feitos diretamente no CMD.exe que serão enviados e executados no Ubuntu, bastando usar o prefixo WSL. Por exemplo:
    wsl sudo apt update
    Além disso, você pode abrir/executar o terminal do Linux dentro do CMD apenas com o comando “wsl”.
  • A aceleração de hardware apesar de ter seus limites, é interessante. O Firefox por exemplo, abre bem, e executa o Youtube sem qualquer engasgo ou latência mesmo com um vídeo em alta definição. O game SuperTuxKart por exemplo também foi testado e executou, porém  com sérios problemas de desempenho.

7. Análise Opinativa

Mesmo com um suporte paliativo na famigerada “gambiarra”, utilizando o VcXSrv para emular o XOrg dentro do Windows 10 para permitir que as janelas dos programas abram, a maioria deles executa muito bem.

Como uma solução para futuros programadores que desejam conhecer o sistema Linux sem sair da zona de conforto de usar Windows, é uma alternativa interessante, mesmo que sua configuração inicial seja um pouco complexa.

A maneira mais direta de justificar a existência do WSL2 é para quem utilizava Ubuntu em máquina virtual dentro do Windows 10. Não é voltado á galera do dual-boot, porque não é um sistema completo com total funcionalidade.

8. Conclusão

Por um lado a existência do WSL2 agrega ao Linux, com melhorias ao kernel vindas da própria Microsoft. As demais distros podem se beneficiar de muita coisa que foi portada/adaptada para Linux.

Com certeza não vai convencer quem usa somente Linux no dia a dia a usar Windows: O Linux aqui não substitui as funcionalidades do Windows nem sequer o torna melhor. É apenas uma ferramenta extra. Não espere que um “apt update” atualize o Windows!

O lado negativo, é perpetuar a promoção do Linux como ferramenta, e não como solução, mantendo-o distante do sonho de ser um sistema para usuários finais domésticos. E quem já usava Windows, não vai encontrar muita motivação para migrar para o Linux, está tudo ali, fácil, no WSL2.

#UrbanCompassPony

Fontes:
Docs.Microsoft
Medium
itservices

4 comentários em “O Tutorial Definitivo: WSL2”

Deixe um comentário