Como Transformar WSL2 no Seu Ambiente Ideal de Desenvolvimento

Gustavo DuarteGustavo Duarte
4 min read

Introdução

Imagino que já conhece o Windows Subsystem for Linux 2 (WSL2), a versão aprimorada do WSL e que está buscando uma forma legal de configurá-lo para desenvolvimento. Pois bem, é para isso que esse artigo foi escrito.

Caso não esteja com o WSL2 instalado no momento, a próxima seção vai te ajudar com isso

Instalando o WSL2

Você deve estar executando o Windows 10 versão 2004 e superior (Build 19041 e superior) ou o Windows 11 para usar os comandos abaixo.

💡
Lembrando que para verificar a versão do Windows, basta rodar o programa winver

A instalação, em si, é simples. Bastando instalar alguma distribuição diretamente da Microsoft Store ou instalando a partir do terminal com PowerShell através do comando

wsl install --install Ubuntu

O comando acima vai, naturalmente, instalar o Ubuntu. Para verificar outras distribuições do Linux disponíveis, serve o seguinte comando

wsl --list --online

Configurando o Ambiente

Configurando o Shell

Agora que você já tem o ambiente instalado, basta iniciar o WSL (através do Menu Iniciar ou do terminal), criar um usuário e começar a utilizar o shell padrão da distribuição.

O Ubuntu vem com o Bourne Shell (sh) instalado, mas seu shell padrão é o Bourne-Again Shell (Bash). Acho que ambos cumprem sua função (que é interagir com o SO) bem, mas vou trazer uma sugestão: o consolidado ZShell (Zsh)

Se nunca o tiver utilizado, provavelmente você já ouviu falar nele. Devido ao seu vasto ecossistema de plugins e melhorias na experiência do usuário, o Zsh é uma ótima alternativa ao Bash em sistemas que o suportam (como é o caso de grandes distros como Debian, Ubuntu, Kali-Linux, etc.).

E também vamos utilizar o framework Prezto — Instantly Awesome Zsh.

# Atualizar os pacotes no Ubuntu
sudo apt-get update \
&& sudo apt-get -y upgrade

# Instalar o Zsh
sudo apt-get install -y zsh

# Clonar o repositório do Prezto
sudo apt-get install -y git \
&& git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"

# Criar uma configuração do Prezto
zsh -c 'setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
  ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done'

# Mudar o shell padrão para o Zsh
chsh -s /bin/zsh

# Iniciar o shell
zsh

Aplicando um tema ao Prezto

Descobrindo e visualizando os temas disponíveis

Agora você pode visualizar os temas disponíveis usando o comando:

prompt -l

E pode visualizar um tema do seguinte modo (tema demoekri usado como exemplo):

prompt -p demoekri

Salvando o tema

Se estiver satisfeito com o tema, basta editar o arquivo $HOME/.zpreztorc e indicar o tema como padrão. Aqui estou usando a ferramenta sed para editá-lo diretamente do shell com o tema peepcode com o emoji 👉 como argumento

prezto_theme="'peepcode' '👉'"
sed -i "/zstyle ':prezto:module:prompt' theme/c\zstyle ':prezto:module:prompt' theme $prezto_theme" $HOME/.zpreztorc
zsh

Por fim, para evitar problemas de performance, recomendo remover o acesso ao PATH do Windows. Para fazer isso, edite o arquivo /etc/wsl.conf com privilégios elevados e adicione as linhas

[interop]
appendWindowsPath=false

Configurando o Docker

Utilizar o docker (ou outra ferramenta de containers) pode ser uma ótima forma de desenvolver criando ambientes replicáveis.

Instalando o Docker

# Configure o repositório apt do Docker
sudo apt-get update
sudo apt-get install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

# Instale o docker engine
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Para permitir que o Docker seja iniciado e utilizado automaticamente, ao iniciar o sistema, é preciso seguir uma das alternativas:

  1. Caso seu sistema tenha suporte ao systemd, adicione, ao arquivo /etc/wsl.conf o seguinte trecho:

     [boot]
     systemd=true
    

    E, então, basta executar os seguintes comandos:

     sudo systemctl enable docker.service
     sudo systemctl enable containerd.service
    
  2. Caso contrário, adicione, ao arquivo /etc/wsl.conf o seguinte trecho:

     [boot]
     command=service docker start
    

Testando o Docker

Se a instalação tiver sido bem sucedida, o comando a seguir deve imprimir um texto introdutório iniciado com “Hello from Docker!”

sudo docker run hello-world

E, por fim, para permitir que o Docker seja utilizado sem a necessidade de permissões elevadas, execute

sudo usermod -aG docker $USER

Reinicie o WSL2 utilizando os seguinte comandos a partir do Windows PowerShell:

wsl --shutdown

Abra, novamente, o WSL e, pronto!

Configurando Ambientes Virtuais

Para configurar ambientes virtuais, faremos o setup do Miniconda

Instalando o Miniconda

# Crie uma pasta para o Miniconda (aqui na versão 3)
mkdir -p ~/miniconda3

# Baixe o script de instalação do Miniconda
# Usando cURL
curl -o ~/miniconda3/miniconda.sh https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

# Instale o Miniconda
bash ~/miniconda3/miniconda.sh -u -b -p ~/miniconda3

# Opcionalmente, remova o script de instalação
rm -f ~/miniconda3/miniconda.sh

Agora basta ativar e utilizar seus ambientes!

Obrigado por ler até aqui!

0
Subscribe to my newsletter

Read articles from Gustavo Duarte directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Gustavo Duarte
Gustavo Duarte