
Pacotes e repositórios: instalando software do jeito certo
Objetivos desta aula
- Entender o que é um gerenciador de pacotes
- Atualizar, instalar, remover e pesquisar pacotes com apt
- Adicionar repositórios oficiais com chave de assinatura
- Fixar versões para ambientes previsíveis
No Linux você não baixa instaladores de sites aleatórios: usa um gerenciador de pacotes. No Ubuntu/Debian é o apt; no Red Hat/Fedora, dnf; no Alpine (muito usado em contêineres), apk.
Um pacote é o programa empacotado com suas dependências e metadados. Um repositório é o servidor de onde os pacotes vêm, assinado digitalmente para garantir que ninguém os alterou.
O fluxo básico: sudo apt update atualiza a lista de pacotes disponíveis (não instala nada); sudo apt install nginx instala; sudo apt upgrade atualiza o que já está instalado; sudo apt remove desinstala.
Para descobrir pacotes use apt search termo e para ver detalhes apt show pacote. Para saber o que já está instalado: apt list --installed | grep nome.
Alguns softwares (Docker, Terraform, kubectl) recomendam repositórios próprios. O processo seguro é: baixar a chave GPG oficial, registrá-la e adicionar o repositório apontando para essa chave. Isso garante a autenticidade.
Em servidores e contêineres, fixe versões (apt install nginx=1.24.*) para que dois ambientes não fiquem diferentes sem querer. Mudanças de versão devem ser decisões, não surpresas.
Em Dockerfiles, combine apt update e apt install no mesmo comando e limpe o cache (rm -rf /var/lib/apt/lists/*) para gerar imagens menores.
Atualizações de segurança são vitais: configure unattended-upgrades em servidores para aplicar correções críticas automaticamente.
Na prática
Ciclo básico com apt
bash
sudo apt update # atualiza a lista
apt search htop # procura
sudo apt install -y htop # instala sem perguntar
apt show htop | head # detalhes
sudo apt remove -y htop # removeRepositório oficial com chave (exemplo HashiCorp)
bash
wget -O- https://apt.releases.hashicorp.com/gpg | \
sudo gpg --dearmor -o /usr/share/keyrings/hashicorp.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp.gpg] \
https://apt.releases.hashicorp.com $(lsb_release -cs) main" | \
sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install -y terraformNota de segurança: Sempre use a chave do site oficial e o `signed-by` para limitar a confiança a esse repositório.
Por que isso importa
Instalar software de forma reprodutível e segura é a base de servidores, imagens Docker e automação com Ansible.
Erro comum
Esquecer apt update e receber “Unable to locate package”, ou instalar scripts com curl | sudo bash sem verificar a origem.
Dica de produção
Registre as versões instaladas em código (Dockerfile, Ansible) em vez de instalar manualmente em produção.
Alerta de segurança
Repositórios não oficiais podem distribuir malware. Prefira fontes oficiais e assinadas.
Pergunta de entrevista
Qual a diferença entre apt update e apt upgrade?
Glossário
- Pacote
- Software empacotado com dependências e metadados.
- Repositório
- Servidor que distribui pacotes assinados.
- GPG
- Sistema de assinatura que garante a autenticidade.
- Pin de versão
- Fixar uma versão específica de um pacote.
Conexão com o CloudShop
As VMs do CloudShop recebem Nginx e agentes de monitoramento por pacotes com versão fixada.
Quiz da aula
1. O que `apt update` faz?
2. Gerenciador de pacotes do Alpine?
3. Por que fixar versões?
Minhas anotações
Salvo automaticamente neste navegador.
