Configurando o Linux para Desenvolvedores - Ferramentas Essenciais
O que este guia aborda
- As ferramentas essenciais para instalar primeiro em uma máquina Linux nova
- Como configurar o gerenciador de pacotes, editor, shell, Git e chaves SSH na ordem correta
- Como tornar seu ambiente reproduzível para que a próxima máquina seja sem dor
Resumo Rápido
- Comece com o gerenciador de pacotes (ele instala tudo o mais)
- Depois adicione os quatro básicos: editor, shell, Git e chaves SSH
- Por fim, documente seus passos / use dotfiles para reprodutibilidade
Premissas
- Família Debian / Ubuntu (
apt) é usada nos exemplos - Para outras distribuições, veja Comparativo de Gerenciadores de Pacotes
- Você consegue usar um terminal e
sudo
Quais ferramentas instalar primeiro?
Conclusão: Instale cinco coisas primeiro: gerenciador de pacotes, editor, shell, Git e chaves SSH.
Em ordem de prioridade, veja o que configurar. Cada item é abordado nas seções abaixo.
| Ordem | Ferramenta | Papel |
|---|---|---|
| 1 | Gerenciador de pacotes | Base para instalar tudo |
| 2 | Editor | Escrever e ler código |
| 3 | Shell | Ambiente de comandos interativo |
| 4 | Git | Controle de versão e compartilhamento |
| 5 | Chaves SSH | Autenticação segura para remotes / GitHub |
Por que começar com o gerenciador de pacotes?
Conclusão: Começar pelo gerenciador de pacotes do sistema operacional centraliza dependências e atualizações.
Combinar instaladores avulsos torna atualizações e remoções difíceis de gerenciar. Atualize a lista de pacotes primeiro, depois instale a base mínima para desenvolvimento.
sudo apt update sudo apt install -y build-essential git curl wget ca-certificates
build-essential é um meta-pacote que instala gcc, make e outras ferramentas de compilação. Muitos runtimes de linguagem e ferramentas precisam disso para compilar.
Verifique as versões depois para facilitar o diagnóstico de problemas futuros.
gcc --version git --version
gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0 git version 2.34.1
Como escolher um editor e shell?
Conclusão: Escolha um editor que você usa diariamente e defina bash ou zsh como seu shell padrão.
Qualquer editor é válido, mas focar em um no início acelera o aprendizado. Para trabalho apenas no terminal, vim ou nano são clássicos; para uma GUI, o VS Code é popular.
sudo apt install -y vim
O shell padrão no Debian / Ubuntu é o bash. Se quiser completação e histórico mais avançados, zsh é uma opção. Veja bash vs zsh vs fish para saber como escolher.
Em caso de dúvida, fique com o bash. Mude de shell somente depois de estar confortável com o básico.
Como configurar Git e chaves SSH?
Conclusão: Defina seu usuário Git e gere uma chave SSH primeiro, e os pushes simplesmente funcionarão.
Primeiro, defina as informações de autor do Git. Pular este passo vai travar você no primeiro commit.
git config --global user.name "Seu Nome" git config --global user.email "you@example.com"
Em seguida, gere uma chave SSH. ed25519 é a recomendação atual.
ssh-keygen -t ed25519 -C "you@example.com"
Exiba a chave pública e registre-a em um serviço como o GitHub (nunca compartilhe a chave privada).
cat ~/.ssh/id_ed25519.pub
Após o registro, um teste de conexão retorna uma mensagem de sucesso.
Hi your-name! You've successfully authenticated, but GitHub does not provide shell access.
Nunca compartilhe a chave privada (id_ed25519, a que não tem extensão). Se ela vazar, regenere a chave e atualize o serviço.
Runtimes de linguagem devem ser instalados globalmente?
Conclusão: Evite instalar runtimes globalmente; use um gerenciador de versões para alternar por repositório.
Instalar runtimes de linguagem diretamente com apt cria problemas quando projetos precisam de versões diferentes. Um gerenciador de versões permite alternar por projeto.
| Linguagem | Gerenciador de versões comum |
|---|---|
| Node.js | nvm / fnm |
| Python | pyenv |
| Ruby | rbenv |
| Rust | rustup |
Por exemplo, o Rust tem um instalador oficial, o rustup.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Para instaladores curl | sh, sempre confirme que a URL é oficial antes de executar. Nunca redirecione um script desconhecido para seu shell.
Como tornar o ambiente reproduzível?
Conclusão: Capture os passos de instalação em um script ou dotfiles para reproduzir a configuração em qualquer lugar.
Fazer cada passo manualmente gera divergências entre máquinas. Codificar os passos melhora a reprodutibilidade.
A abordagem mais simples é colocar os comandos de instalação em um único shell script.
#!/usr/bin/env bash set -euo pipefail sudo apt update sudo apt install -y build-essential git curl vim git config --global user.name "Seu Nome" git config --global user.email "you@example.com"
Arquivos de configuração (.bashrc, .gitconfig, .vimrc — seus dotfiles) são geralmente mantidos em um repositório Git e clonados em cada nova máquina.
git clone git@github.com:seu-usuario/dotfiles.git ~/dotfiles
Não precisa de perfeição de imediato. Adicione conforme avança, e um script de configuração pessoal cresce naturalmente.
Armadilhas comuns e como resolver
Conclusão: A maioria dos problemas vem de permissões, PATH ou chaves não registradas, não das ferramentas.
- Permission denied: Permissão de escrita insuficiente. Não adicione
sudosem pensar; verifique propriedade e permissões comls -lprimeiro. - command not found: Instalado mas não está no seu PATH. Confirme o binário com
which <comando>. - Erro de autenticação no git push: Verifique se sua chave SSH pública está registrada no serviço via
ssh -T git@github.com.
O que não fazer
- Reexecutar com
sudosem ler o erro - Executar scripts desconhecidos sem verificá-los
- Fazer commit de uma chave privada em um repositório