Configurando o Linux para Desenvolvedores - Ferramentas Essenciais

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

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.

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 sudo sem pensar; verifique propriedade e permissões com ls -l primeiro.
  • 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 sudo sem ler o erro
  • Executar scripts desconhecidos sem verificá-los
  • Fazer commit de uma chave privada em um repositório

Próximas Leituras