Como Transformar WSL2 no Seu Ambiente Ideal de Desenvolvimento
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.
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:
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
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!
Subscribe to my newsletter
Read articles from Gustavo Duarte directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by