Aprenda / Terminal e linha de comando

IntermediárioAula 13 de 1614 min0% da trilha

Gerenciadores de pacote: apt e brew

Instalar programas sem baixar instalador nenhum — e por que 'sudo' em tudo, sem pensar, é o hábito mais arriscado desta lição.

Instalar um programa fora do terminal normalmente significa baixar um arquivo, abrir um instalador, clicar em "avançar" algumas vezes. No terminal, esse trabalho é feito por um gerenciador de pacotes — uma ferramenta que baixa, instala, atualiza e remove programas a partir de um repositório confiável, tudo com um único comando.

apt — o gerenciador padrão em distribuições baseadas em Debian/Ubuntu

Em servidores Linux (a grande maioria roda Ubuntu ou Debian), o gerenciador mais comum é o apt. Antes de instalar qualquer coisa nova, o primeiro passo quase sempre é atualizar a lista de pacotes disponíveis:

terminal
sudo apt update

apt update não instala nem atualiza programa nenhum ainda — ele só baixa a lista mais recente de quais versões estão disponíveis em cada repositório configurado. Sem rodar isso primeiro, o apt pode tentar instalar uma versão desatualizada, ou nem encontrar um pacote que foi adicionado recentemente ao repositório.

terminal
sudo apt install htop
terminal
sudo apt upgrade   # atualiza todos os pacotes instalados pra versão mais recente
sudo apt remove htop  # remove o pacote

brew — o gerenciador mais comum no macOS

O macOS não vem com apt nem com gerenciador de pacotes nenhum instalado por padrão — o Homebrew (comando brew) preenche esse espaço e virou o padrão de facto entre quem desenvolve em Mac. A lógica dos comandos é praticamente a mesma do apt:

terminal
brew update
brew install htop
brew upgrade
brew uninstall htop

Uma diferença notável: o brew instala pacotes na pasta do próprio usuário (normalmente sem precisar de sudo), enquanto o apt instala em pastas do sistema que exigem privilégio de administrador — por isso os exemplos de apt acima levam sudo e os de brew não.

Por que sudo em tudo, sem entender, é arriscado

sudo (superuser do) executa um comando com privilégios de administrador — sem as restrições normais de permissão que protegem o sistema de mudanças acidentais. É necessário pra várias operações legítimas, como o apt install acima. O problema é o hábito de colar sudo na frente de qualquer comando que dá erro de permissão, sem entender por que ele pediu privilégio.

Um comando rodado com sudo tem poder de alterar ou apagar praticamente qualquer arquivo do sistema, inclusive arquivos essenciais pro sistema operacional funcionar. Rodar sudo rm -rf num caminho errado, por exemplo, não tem a proteção que normalmente impediria apagar arquivos de sistema sem privilégio — o sudo remove justamente essa proteção. A regra prática: use sudo quando você entende por que aquele comando específico precisa de privilégio elevado, nunca como reflexo automático pra "fazer o erro sumir".

Exercício

Num servidor Ubuntu novo, você precisa instalar o curl. Escreva a sequência completa de comandos, na ordem certa, explicando o motivo do primeiro passo.

Quiz rápido

O que exatamente 'sudo apt update' faz, sem ainda instalar nada?
Por que colocar 'sudo' na frente de qualquer comando que dá erro de permissão, sem entender o motivo, é um hábito arriscado?