[old] Como configurar o windows para desenvolvimento com WSL 2
O WSL 2 foi anunciado em Maio de 2019, introduzindo mudanças importantes, como a utilização de um kernel de Linux real. Dentre as promessas, estavam uma velocidade consideravelmente maior na execução de comandos, além de melhorar a instalação de pacotes, compilação de projetos, visualização de arquivos e várias outras coisas. Tudo isso em comparação com a primeira versão do WSL, que foi lançada em 2016.
Operações como git clone, npm install, apt update, apt upgrade, e mais tudo será visivelmente mais rápido. O aumento real da velocidade dependerá do aplicativo em execução e de como ele está interagindo com o sistema de arquivos. Os testes iniciais que executamos têm o WSL 2 executando até 20x mais rápido em comparação com o WSL 1 ao descompactar um tarball compactado e cerca de 2-5x mais rápido ao usar o git clone, npm install e cmake em vários projetos - Craig Loewen, em comunicado oficial no blog
Como usuário de Linux, fiquei curioso com esses anúncios e passei a testar essa nova versão, e ver se me atende de forma equivalente ao linux.
As principais ferramentas utilizadas no meu dia a dia são: git, node, gcloud, e às vezes python. Algumas outras coisas (flutter, principalmente adb) ainda têm certas limitações.
Se quiser ter um terminal igual a esse meu, basta seguir o tutorial até o final.
Passos
- Configuração do WSL 2
- Instalando uma distro linux
- Configurando o ambiente linux e instalando primeiros pacotes
- (Opcional) Configuração do zsh
- (Opcional) Instalação e configuração do windows terminal
Requisitos
1. Configuração do WSL 2
Para habilitar o WSL 2, basta executar o powershell como administrador (você pode pesquisar powershell no menu, e selecionar “Executar como Administrador) e inserir os seguintes comandos:
Habilitar o recurso do WSL, caso ainda não tenha
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
Habilitar a Plataforma de máquina virtual
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Reinicie o computador para concluir a instalação.
Definir o WSL 2 como a versão padrão
wsl --set-default-version 2
Para solução de problemas, consultar a documentação:
No meu caso, precisei instalar o kernel do WSL2 manualmente. Segue o link:
2. Instalando uma distro linux
Basta abrir a Microsoft Store e escolher a distribuição Linux que quiser:
A versão que estou utilizando é o Ubuntu 20.04 LTS. O Ubuntu já vem com git, apt, dpkg e python por padrão.
Após baixar e instalar, é preciso executar a distribuição. Na primeira vez que iniciar, um console será aberto e a instalação vai ser finalizada. Quando acabar, você vai criar uma conta de usuário e uma senha para sua distro linux.
- Basta digitar o nome de usuário, que vai ser utilizado para criar a pasta de home do sistema, e pressionar enter.
- Em seguida, digite a senha e pressione enter (ao digitar a senha, não vai aparecer nenhum cursor).
- Confirme a senha e pressionar enter novamente.
Essa conta vai ser o administrador do Linux, de onde você vai poder executar os comandos de nível administrativo usando sudo
.
Ao terminar, o bash será iniciado já dentro da sua distribuição.
3. Configurando o ambiente linux e instalando primeiros pacotes
Dentro do terminal da sua distribuição, execute os seguintes comandos:
cd ~
touch $HOME/.hushlogin
sudo apt update && sudo apt upgrade
sudo apt install git python3-pip -y && echo "alias python=python3" >> .bashrc
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
source .bashrc
nvm install --lts
Passo a passo:
-
Desabilitar a mensagem de “Bem vindo” da distro.
touch $HOME/.hushlogin
-
Atualizar os pacotes instalados.
sudo apt update && sudo apt upgrade
-
Garantir a instalação do git, instalar o pip para python 3 e acrescentar o alias
python
para executar.sudo apt install git python3-pip -y && echo "alias python=python3" >> .bashrc && source .bashrc
-
Baixar o Node Version Manager (nvm). NVM é um gerenciador de versões de node, que facilita a instalação e manutenção das versões do node e do npm.
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
-
Usar o nvm para instalar a última versão estável do node.
nvm install --lts
Para mais detalhes sobre como instalar outras versões, basta consultar a página oficial no github.
-
Para ver se as instalações funcionarem, execute
node -v
- Para abrir o vs code a partir desse ambiente, basta executar:
code .
- Para abrir o explorer e conseguir acessar seus arquivos fora do terminal:
explorer.exe .
4. (Opcional) Configuração do zsh
Zsh (ou Z Shell) é uma versão estendida do bash, com diversas novas funções, além de suportar plugins e temas. Como é baseado no bash, ele tem todas as mesmas funções, e para trocar entre eles basta uma linha de comando.
Para instalar no ubuntu, basta executar:
sudo apt-get install zsh
Após instalar, deve aparecer uma confirmação se você deseja trocar o padrão do seu sistema para o zsh. Caso não apareça, basta executar chsh -s /usr/bin/zsh
.
Para voltar ao bash, é só executar: chsh -s /usr/bin/bash
.
Para saber como instalar em outras distros, consulte esse link: Installing zsh
Também pode executar os seguintses comandos:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
echo "alias python=python3" >> .zshrc
echo 'export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm' >> .zshrc
Isso serve para instalar o ohmyzsh - um framework gerenciador para as configurações do zsh - e replicar as configurações do python e nvm para o arquivo fonte do zsh (.zshrc).
A maioria dos temas para o zsh precisa de alguma fonte powerline, como a Fira Code, para dar suporte aos ícones. Para instalar, basta baixar a última versão da fonte, extrair para algum lugar e executar o arquivo FiraCode-Medium.ttf dentro da pasta ttf.
O tema que eu uso é o spaceship-prompt. Para instalar, é só usar um npm install -g spaceship-prompt
.
Para mais temas, você pode ir na página oficial do ohmyzsh: Temas.
O ohmyzsh também possui vários plugins. Não configurei nenhum no windows, mas se quiser saber mais sobre:
- ZInit: gerenciador de plugins
- Um que uso no linux: zsh-syntax-highlighting
5. (Opcional) Instalação e configuração do windows terminal
O Windows Terminal foi anunciado no build 2019, e agradou muito a comunidade, pois ele centraliza todos os shell instalados (cmd, powershell, bash) em um só lugar, de forma muito personalizável e fácil de configurar, além de usar GPU pra renderizar. Depois de 1 ano em versão preview, foi lançada a versão 1.0 no build 2020.
Para instalar o windows terminal, basta ir até a loja da microsoft.
Depois disso, vamos alterar o terminal principal padrão (para abrir o linux automaticamente) e a fonte do terminal, para dar suporte aos ícones do tema do zsh.
Para isso:
- Abra o windows terminal
- Abra as configurações (Ctrl+,). Isso vai abrir um arquivo json
-
Na lista “list”, dentro de “profiles”, encontre a chave que contém a distro linux que você instalou. No meu caso:
{ "guid": {código}, "hidden": false, "name": "Ubuntu-20.04", "source": "Windows.Terminal.Wsl" }
-
Altere esse objeto para acrescentar a fonte Fira Code:
{ "guid": {código}, "hidden": false, "name": "Ubuntu-20.04", "source": "Windows.Terminal.Wsl", "fontFace": "Fira Code" }
- Copie o valor da chave “guid”, que é um código alfanumérico entre chaves.
-
Vá ao início do arquivo, na chave “defaultProfile”. Cole o valor da chave guid do linux no lugar do código que já está ali. Por exemplo:
{ "defaultProfile": {código} }
- Salve as configurações (Ctrl+s), feche o terminal e abra novamente.
Agora o seu terminal deve estar igual ao meu!
Para configurar a mesma fonte no terminal do vscode:
- Abra o vscode
- Vá para as configurações (Ctrl+,)
- Pesquise “terminal.font”
- Preencha a caixa de texto com “Fira Code”
- Salve as configurações (Ctrl+S)