APT e DNF resolvem o mesmo tipo de problema em famílias diferentes de Linux: localizar pacotes em repositórios, instalar dependências, aplicar atualizações e remover software. O erro comum é tratar os comandos como equivalentes linha por linha ou copiar receitas de uma distribuição para outra. A sequência segura começa identificando o sistema, entendendo a transação proposta e só então confirmando a mudança.
Resposta curta: descubra a distribuição antes de escolher o comando
cat /etc/os-release
command -v apt
command -v apt-get
command -v dnf5
command -v dnfEm Debian/Ubuntu e derivados, APT é a família esperada. Em sistemas RPM modernos, DNF ou DNF5 pode ser a interface disponível. Não force um gerenciador que não pertence à distribuição e não misture repositórios de famílias diferentes.
1. APT: atualizar o índice não é a mesma coisa que atualizar pacotes
apt update atualiza os metadados dos repositórios configurados. Ele não instala as novas versões por si só. Depois disso, use apt list --upgradable para revisar o que está disponível antes de decidir pela atualização.
sudo apt update
apt list --upgradablePara aplicar atualizações, apt upgrade é a operação interativa comum. Leia a lista de pacotes, o espaço necessário e qualquer aviso antes de confirmar:
sudo apt upgrade2. Instalar, consultar e remover com APT
Instalação e consulta devem usar o nome real do pacote oferecido pelos repositórios configurados.
apt search rsync
apt show rsync
sudo apt install rsyncPara remover, diferencie o pacote da configuração local. apt remove remove o pacote mas pode preservar arquivos de configuração; apt purge também remove configurações gerenciadas pelo pacote. Antes de usar autoremove, leia a lista proposta:
sudo apt remove nome-do-pacote
sudo apt purge nome-do-pacote
sudo apt autoremoveNão transforme autoremove em rotina cega. Dependências marcadas como automáticas podem ser importantes para uma aplicação que você ainda usa.
3. full-upgrade pode alterar mais do que upgrade
A documentação do APT diferencia operações que apenas atualizam pacotes daquelas que podem instalar ou remover dependências para resolver a transação. Em máquina de produção, não tratefull-upgrade como substituto automático de upgrade. Revise cuidadosamente a proposta antes de confirmar.
sudo apt full-upgradeSe a proposta inclui remoção de componente crítico, biblioteca central ou serviço que você não esperava alterar, pare e investigue a dependência antes de continuar.
4. apt e apt-get têm papéis diferentes em automação
A documentação do Ubuntu recomenda APT para uso interativo e apt-get para scripts não interativos, porque a interface de script precisa de comportamento mais estável. Isso não significa adicionar -y a toda operação: automação deve definir claramente o que pode mudar e registrar falhas.
sudo apt-get update
sudo apt-get install nome-do-pacoteEm servidor, prefira automação declarativa ou uma janela de manutenção a comandos que aceitam qualquer alteração sem revisão.
5. DNF e DNF5: confira qual geração existe no sistema
A família Fedora/RHEL evoluiu de DNF para DNF5. Algumas distribuições expõem dnf5explicitamente; outras mantêm dnf como comando principal. Descubra o binário real e consulte sua documentação local:
command -v dnf5 || command -v dnf
dnf5 --version 2>/dev/null || dnf --version
man dnf5 2>/dev/null || man dnfO restante deste guia usa dnf5 como referência da geração atual. Se seu sistema oferece apenas dnf, confirme a sintaxe correspondente antes de copiar comandos.
6. Operações básicas com DNF5
dnf5 search rsync
dnf5 info rsync
sudo dnf5 install rsync
sudo dnf5 upgrade
sudo dnf5 remove rsyncComo no APT, a parte importante não é decorar verbos: é revisar a transação antes de confirmar. Uma remoção pode levar dependências junto; uma atualização pode trocar bibliotecas usadas por serviços em execução.
7. Repositórios de terceiros precisam de origem e assinatura verificáveis
O gerenciador de pacotes confia nos repositórios configurados. Adicionar uma fonte de terceiros amplia a cadeia de confiança do sistema. Use somente instruções oficiais do fornecedor ou projeto, confirme a distribuição e versão suportadas e valide a chave/assinatura conforme a documentação do repositório.
Evite receitas genéricas que mandam baixar uma chave de domínio fictício, copiar umsources.list pronto ou instalar um arquivo RPM aleatório. A URL e a chave precisam pertencer ao fornecedor real que você decidiu confiar.
8. Erro de repositório não é motivo para desativar verificação de assinatura
Falha de assinatura, chave expirada, metadado inválido ou repositório incompatível deve interromper a atualização até a origem ser entendida. Não contorne a verificação de assinatura para “fazer funcionar”. Isso remove justamente a proteção que permite ao gerenciador verificar procedência e integridade.
9. Não apague arquivos de lock por reflexo
Se APT, dpkg ou DNF informa que outra transação está em andamento, primeiro descubra se existe um processo legítimo trabalhando. Remover arquivos de lock enquanto o gerenciador ainda escreve no banco de pacotes pode deixar o estado inconsistente.
ps aux | grep -E 'apt|dpkg|dnf' | grep -v grepEm máquinas com atualização automática, aguarde o processo terminar ou investigue o serviço responsável. Só faça recuperação de estado depois de confirmar que não existe uma transação ativa.
10. Atualização em produção exige plano de retorno
Antes de atualizar um servidor importante, saiba quais serviços dependem dos pacotes, como validar a aplicação depois da mudança e como restaurar configuração ou dados. O histórico de transações pode ajudar no diagnóstico, mas não trate “undo” como garantia de rollback completo: dados, migrações e formatos de arquivo podem não voltar junto com o pacote.
Para sistemas críticos, snapshot ou backup testado antes da janela de manutenção é uma proteção mais sólida do que confiar em reversão automática do gerenciador.
Quando parar antes de confirmar a transação
Pare se a operação propõe remover muitos pacotes, substituir componentes centrais, usar repositório que você não reconhece, ignorar assinatura, alterar uma versão crítica fora da janela de manutenção ou se você não sabe como validar o serviço depois. Em servidor remoto, também pare se não existe acesso de recuperação caso rede ou SSH deixem de subir após a atualização.
Checklist prático
- Distribuição e gerenciador foram identificados em
/etc/os-release. - Repositórios configurados são conhecidos e compatíveis com a versão do sistema.
- A lista de instalação, atualização ou remoção foi revisada antes da confirmação.
- Operações destrutivas não usam confirmação automática sem necessidade.
- Scripts usam a interface indicada pela documentação da distribuição.
- Falhas de assinatura não são ignoradas.
- Existe backup/snapshot e método de validação para mudanças críticas.
Fontes oficiais consultadas
Onde este guia entra no Atlas
Gerenciadores de pacotes controlam origem, dependências, atualização e remoção de software; entender a distribuição e o repositório vem antes do comando.
