Configurando o WSL2 com Alpine Linux
Neste tutorial usaremos a Alpine Linux dentro do WSL2, caso nunca tenha configurado o wsl2 em sua maquina deixo esse outro tutorial Configurando o WSL com o Ubuntu 22.04 + ZSH para que tenha por onde começar, aqui vou considerar que já tenha WSL2 funcionando plenamente em sua maquina.
Escolhi essa distro por querer uma distro diferente da minha principal o Manjaro Linux, que também tenho um tutorial de instalação e experimentar o famoso neovim como ferramenta de desenvolvimento.
Índice
Instalando o Alpine Linux no WSL2
Importante lembar que por padrão o Alpine Linux não é suportado pelo WSL2, por isso usaremos o de um projeto da yuk7 que criou um modelo simples e fácil de ser seguido ela tem projetos para as distros:
Aqui deixo o link com a lista das distros que fazem parte deste projeto usando wsl2 diferentes da base do Linux Ubuntu.
Seguindo as recomendações do link basta baixar o arquivo descompactar onde achar melhor, eu fiz no diretório raiz. Agora dentro da pasta descompactada execute o terminal como Administrador do sistema e execute o seguinte comando
.\ Alpine.exe
Feito isso o Alpine Linux será instalado no WSL2, agora feche o terminal e abrindo novamente você verá o sistema instalado, quando tiver feito isso estará logado como root do sistema e daqui a pouco resolvemos isso.
Instalando o básico
Uma coisa interesante sobre o alpine é que ele vem sem nada praticamente, precisamos instalar tudo e vamos ao comando pra isso, mas antes vou deixar a lista de comandos do alpine para que possa entender como manipular o sistema.
apk add zsh curl wget git htop nano doas neofetch
Nesse pacote de instalações estamos colocando o zsh que será nosso shell padrão do sistema, mas antes disso vamos criar nosso usuário nào root do sistema.
Criando um usuário não root
Precisamos criar o usuário com sua respectiva senha, vamos precisar conceder para ele o uso de comandos de root e para isso temos que instalar e configurar sudo e fazemos isso pelo comando.
apk add sudo
NEWUSER='<username>'
adduser -g "${NEWUSER}" $NEWUSER
echo "$NEWUSER ALL=(ALL) ALL" > /etc/sudoers.d/$NEWUSER && chmod 0440 /etc/sudoers.d/ $NEWUSER
agora adicionamos nosso usuário ao grupo wheel pelo comando
echo '%wheel ALL=(ALL) ALL' > /etc/sudoers.d/wheel
adduser NEWUSER wheel
Legal, mas ainda não estamos usando o zsh e toda vez que entramos no sistema estamos como root. Para corrigir isso precisamos primeiro editar nosso arquivo passwd
nano etc/passwd
do resultado apresentado só é importante a primeira e ultima linha como exemplo:
root:x:0:0:root:/root:/bin/ash
.
.
username:x:1000:1000:wesleyotio:/home/username:/bin/ash
agora só mudamos de /ash pra /zsh e salvamos o arquivo, feche o terminal e abra novamente. O zsh estará em pleno funcionamento. Agora execute o comando:
whoami
se sua resposta for root é pelo fato de que o alpine ainda não está configurado para iniciar a partir de seu usuário criado, para corrigir isso feche o terminal e execute novamente a pasta descompactada do alpine linux como administrador e nela execute o seguinte comando passando o nome do seu usuário
.\ Alpine.exe config --default-user <username>
agora quando iniciamos o sistema o comando whoami deve apresentar o nome de seu usuário.
Nerd Fonts
Antes de deixar nosso terminal bonito como fizemos no Configurando o WSL com o Ubuntu 22.04 + ZSH vamos instalar uma fonte do tipo nerd fonts, aqui deixo os links da que tenho usado para você baixar e instalar em seu sistema.
Feito isso agora abra novamente o terminal e em configurações -> padrões -> fonts selecione MesloLGS NF .
powerlevel10k
Tudo isso foi necessário para agora instalar o powerlevel10k que é um tema para o shell ZSH e deixar nosso terminal mais bonito e performático quando somado aos plugins. Eu sugiro que use a instalação manual que tem certeza de funcionar.
Fazendo uso da instalação manual usamos o comando.
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >>~/.zshrc
Feche o terminal e abra novamente, assim você inicia a configuração do tema, siga as instruções e customize seu terminal da forma que mais te agrada. Caso queira mudar o estilo apresentado basta usar o comando.
p10k configure
e fazer o processo novamente.
plugins zsh
Bonito o terminal já está, mas precisamos deixar performático e para isso vamos usar os seguintes plugins:
- zsh-autosuggestions
- zsh-syntax-highlighting
zsh-autosuggestions
Esse plugin é responsável por usar nosso histórico de comandos para sugerir qual proximo comando você deseja usar e autocompleta o comado quando usamos TAB ou seta direita. Para instalar executamos.
git clone https://github.com/zsh-users/zsh-autosuggestions ~/.zsh/zsh-autosuggestions
Agora adicionamos os caminho do plugin em nosso arquivo /.zshrc
source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh
Feche e abar novamente o terminal para usar o plugin
zsh-syntax-highlighting
Esse plugin é responsável dar realce/cores nos comandos, diretórios e arquivos no sistema no terminal.
sudo git clone https://github.com/zsh-users/zsh-syntax-highlighting.git
echo "source ${(q-)PWD}/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc
Para ativar o plugin em nosso Shell executamos o comando.
source ./zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
Docker
Agora vamos pra instalação que deu mais trabalho para realizar, vale lembrar que estou usando WSL2 com docker nativo rodando na própria distro linux. Então caso seja usuário do docker desktop acho que este passo não seja necessário. Esses dois artigos aqui me ajudaram muito nessa configuração.
- Install Docker on Windows (WSL) without Docker Desktop
- DOCKER IN WSL2 ALPINE WITHOUT DOCKER DESKTOP-DOCKER
Inicialmente atualizamos o sistema pelo comando
sudo apk upgrade -U
agora instalamos o docker
sudo apk add docker
feito isso vamos adicionar nosso usuário ao grupo docker para não ser necessário usar sudo docker toda vez que quisermos usa-lo
sudo addgroup $USER docker
precisamos definir um ID para nosso grupo docker que deve ser um valor acima de 1000 e menor que 65534, para ver quais ids já estão atribuídos a grupos use o comando.
getent group | cut -d: -f3 | grep -E '^[0-9]{4}' | sort -g
escolhido o ID agora podemos atribuir ao grupo docker de duas maneiras usando o comando.
sudo sed -i -e 's/^\(docker:x\):[^:]\+/\1:<ID>/' /etc/group
ou caso tenha instalado o shadow
sudo apk add shadow
sudo groupmod -g <ID> docker
Pronto temos o docker instalado em sua distro
Iniciando o docker
No alpine Linux foi bem tenso até encontrar uma configuração que fizesse isso funcionar corretamente, foi aí que encontrei o comando que adiciona o serviço do docker a execução padrão
rc-update add docker default
Agora para iniciar o docker temos que fazer o comando
sudo openrc default
para finalizar a execução do docker usamos o mesmo comando do ubuntu
sudo service docker stop
se desejar iniciar novamente usamos o mesmo comando do ubuntu também
sudo service docker start
o problema é que para executar o serviço pela primeira vez somos obrigados a usar o sudo openrc default a solução para esse impasse é usar ALIAS
ALIAS
Alias são apelidos que damos aos nossos comando de terminal com objetivo de torna-los mais simples e para isso precisamos editar o nosso arquivo .zshrc
ou criar um arquivo .zshrc_aliases
em separado somente com seus alias. Vou optar pela segunda opção pois em uma nova instalação do sistema teremos somente que referenciar o arquivo novamente.
Iniciemos editando nosso arquivo .zshrc
sudo nano ~/.zshrc
nesse arquivo vamos adicionar o caminho, caso exista, para nosso arquivo de aliases
if [ -f ~/.zshrc_aliases ]; then
. ~/.zshrc_aliases
fi
agora vamos criar nosso aquivo de aliases e adicionar nossos apelidos
sudo nano ~/.zshrc_aliases
Meu arquivo ficou assim, defini docker-init para toda vez que iniciar os sistema e precisar ligar o docker
#Config for Docker
alias docker-init='sudo openrc default'
alias docker-start='sudo service docker start'
alias docker-stop='sudo service docker stop'
agora para garantir o funcionamento usamos o comando source para recarregar nossos arquivos
source ~/.zshrc_aliases
source ~/.zshrc
para realizar a testagem basta executar
docker-init
docker run --rm hello-world
Se sua saída obtiver o Hello from dorcker! sua configuração está completa. Na parte 2 realizaremos a configuração do Tmux e neovim
Top comments (0)