Setup de desenvolvimento + estudos com Arch Linux
Tags: archlinux, setup, programming, tutorial
Published: 2022-12-12 18:54:02



![Arch Linux com KDE Plasma customizado](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3pad9rd3z1f4xr3got4e.png)
Se você trabalha e ou estuda programação e desenvolvimento, já se deparou com a constante briga pela internet: Qual sistema operacional utilizar? Quais softwares e bibliotecas eu deveria ter? Não direi "Eis aqui a resposta", mas sim "Eis como eu configuro meu ambiente de desenvolvimento".

## Afinal, sistemas base Linux ou Windows?

Primeiro de tudo, você pode sim usar Windows. Ao contrário do que muitas pessoas falam, é possível desenvolver no sistema da Microsoft sem muitos problemas. Muitos softwares e frameworks rodam tranquilamente por lá. O que você deve levar em consideração é a facilidade para isso.
O Windows, pela minha experiência, é um pouco mais complicado durante as configurações do ambiente, enquanto no Linux posso fazer tudo com algumas poucas linhas de comando. Mas isso é a minha visão, você pode ter a sua e tá tudo bem :)

##Beleza, mas por quê Arch Linux?

Ubuntu é, sem dúvida, o sistema baseado em Linux mais popular até aqui e é considerado a porta de entrada para muitos iniciantes por ser estável e com uma vasta comunidade caso você tenha algum problema. A minha questão, aqui, está com os pacotes.
Para um usuário comum, pouco importa a versão dos pacotes. Como o Ubuntu prioriza estabilidade, faz sentido você ter pacotes um pouco mais antigos pois foram debugados por mais tempo. E, dependendo do que você desenvolve, já é mais que o suficiente.
Para mim, que gosto sempre de receber as últimas atualizações dos softwares, esperar 6 meses entre versões atacaria a minha ansiedade. Por isso escolhi sistemas do tipo "Rolling Release" e "bleeding edge". Dentre eles, o Arch Linux é o mais popular e portanto, a minha escolha.

##Ambiente Gráfico

![KDE Plasma sem modificações](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9f1mf75gwsndwi1vr29r.png)
Dentre os ambientes gráficos mais populares, a minha escolha foi o KDE Plasma. É um ambiente leve e moderno, além de ser altamente personalizável e ter mais recursos. Eu poderia ter escolhido o Gnome, mas, ao meu gosto, ele é bem padrão e "out of the box". Gosto dele, mas não pra ser meu ambiente gráfico principal.

##KDE Plasma ou MacOS?

Uma coisa sou obrigado a admitir: O visual do MacOS é o mais bonito dentre todos os sistemas operacionais. A disposição com uma barra de status com menu global, uma dock flutuante e o design minimalista me atrai e muito. Como o KDE Plasma é altamente customizável, inspirei 90% das minhas modificações com o MacOS. Não entrarei em detalhes ainda sobre como modifiquei, fica para um próximo post :)

##Softwares e bibliotecas

###Terminal: Zsh, oh-my-zsh e plugins

Por padrão, o terminal do Arch Linux é o bash e, embora seja suficiente para muita gente, prefiro o Zsh com os plugins Oh My Zsh e o tema Jovial. Para instalar o Zsh no Arch Linux, basta executar:

```
sudo pacman -S zsh
```

Em seguida, para o Oh My Zsh:

```
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
```

Durante a instalação, o script perguntará se deseja alterar seu shell padrão para o Zsh. Responda que sim e estará feito :)
Para a instalação do Jovial, tudo será feito com um único comando:

```
curl -sSL https://github.com/zthxxx/jovial/raw/master/installer.sh | sudo -E bash -s ${USER:=`whoami`}
```

![Zsh + oh-my-zsh + Jovial](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uucrl7wam148of0ugxhz.png)

Todas as features do Jovial estão na [documentação](https://github.com/zthxxx/jovial)

###Suporte ao AUR (Arch User Repository)

O Arch Linux tem seu repositório próprio, mas um de seus diferenciais é o AUR, onde como o próprio nome diz, é um repositório dos usuários. Caso o software que você procura não esteja nos repositórios oficiais, há grande chance de ele estar no AUR. Lembrem sempre de conferir o aquivo PKGBUILD para garantir que nada de malicioso será instalado (e veja também pelo site os comentários).
Para usá-lo de forma automatizada, eu uso o pacote Yay (Yet Another Yogurt), que possui a mesma sintaxe do 'pacman' e facilita demais seu uso. Para instalá-lo, você deve ter os pacotes 'git' e 'base-devel' instalados:

```
sudo pacman -S --needed git base-devel && git clone https://aur.archlinux.org/yay.git && cd yay && makepkg -si
```

###Navegador: Firefox e Brave

Sempre alterno entre ambos os navegadores, mas atualmente minha escolha é com o Brave. Como priorizo sincronização entre dispositivos e o Firefox no Android, ao meu ver, ainda é um pouco lento, preferi o Brave nesse quesito. No ArchLinux, o Firefox está disponível nos repositórios oficiais:

```
sudo pacman -S firefox
```

Enquanto o Brave está no AUR:

```
yay -S brave-bin
```

![Página inicial do Brave Browser](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1rf9oe8td64zm5jo3as6.png)

### Git e chaves SSH

Caso não tenha instalado, iremos instalar a ferramenta 'git'
```
sudo pacman -S git
```
E em seguida configuramos com a nossa conta do GitHub

```
git config --global user.name "Your Name"
git config --global user.email your@email.com
```

Caso você possua autenticação de dois fatores no GitHub, sabe que é um saco ter que copiar e colar o token pra cada transação (git push principalmente). Para evitar isso (e manter a conta segura), podemos usar chaves SSH. No meu caso, que possuo backups delas em um ssd externo, posso restaurar com o comando:

```
cp -R /media/higorslva/ssd-backup/backups/.ssh
```

Mudo as permissões:

```
chmod 700 ~/.ssh
chmod 644 ~/.ssh/id_ed25519.pub #Sua chave pública
chmod 600 ~/.ssh/id_ed25519     #Sua chave privada
```
Iniciamos e adicionamos a chave ssh no agente ssh:

```
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
```

Podemos testar a conexão:

```
ssh -T git@github.com
```

![](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f17rlt5jy4bwzh6hgs75.png)

Com isso podemos fazer ações do GitHub sem precisar digitar nossa credencial toda hora. 
Caso não possua chaves ssh, dê uma olhada na documentação para adicioná-la na sua conta do GitHub.

###Editores de texto

Meu editor principal não é o VS Code, embora eu ainda o utilize bastante. Uso atualmente o Helix Editor, um editor de texto em terminal baseado fortemente no Vim, inclusive com os mesmos comandos.

![Helix Editor ou "hx"](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4bh6m4bjmotd1nmjsz5c.png)

Para um desenvolvimento mais "complexo", uso o Visual Studio Code, principalmente para projetos em Java e Python.


![VS Code com tema Monokai](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3l5kavukenb62mvbo70x.png)

É possível instalar o VSCode direto do repositório oficial do Arch Linux, porém, é a versão "Code - OSS". O que impossibilita a instalação de algumas extensões que são cruciais para meu uso. Por isso vamos usar o AUR para instalar a versão oficial (convertida da versão para Ubuntu/Debian)

```
yay -S visual-studio-code-bin
```

###Java e Python

Costumo usar o Java sempre na versão mais recente (Atualmente a versão 19). Podemos instalar a versão mais recente do Java com:

```
sudo pacman -S jdk-openjdk
```

E o Python, caso não esteja instalado:

```
sudo pacman -S python
```

###Programas Adicionais

Outros programas que costumo usar são:

- **Oracle VirtualBox**: Para máquinas virtuais;
- **GIMP e Inkscape**: Para edição de imagens e vetorização, respectivamente;
- **Geogebra**: Para gráficos (útil em aulas de Cálculo);
- **LibreOffice**: Alternativa ao MSOffice, para documentos;
- **Guitarix**: Simulador de amp e efeitos para guitarra;
- **TexStudio**: Criação de documentos em LaTeX;