Tutorial de Linux / APT e DNF: instalar, atualizar e remover pacotes

Um gerenciador de pacotes no Linux obtém programas e dependências dos repositórios configurados e cuida da instalação, atualização e remoção. Debian e Ubuntu usam ferramentas do APT, como apt; no Rocky Linux, usa-se dnf. Para atualizar com critério, separe a atualização das informações sobre pacotes disponíveis da alteração dos programas já instalados.

Esta aula trata de consulta, instalação e atualização de pacotes. Para administrar um programa instalado como serviço, consulte também a aula de estados e inicialização de serviços systemd, em inglês.

O escopo dos exemplos é uma máquina virtual com instalação convencional do Ubuntu 26.04 LTS ou do Rocky Linux 9. Contêineres, WSL, imagens mínimas e outras versões podem ter ferramentas, repositórios e serviços diferentes. Prepare recuperação pelo console e registre o ambiente antes de alterar o sistema; a aula de preparação da máquina virtual, em inglês apresenta essa organização. Use somente o ramo de comandos correspondente à sua distribuição.

Entender pacotes, repositórios e dependências

Um pacote reúne arquivos de software e metadados, como versão e dependências. Um repositório é uma fonte de pacotes fornecida pela distribuição ou adicionada por um administrador. Se o programa depender de uma biblioteca, o gerenciador pode propor instalá-la na mesma transação, isto é, no conjunto de alterações calculado para aquela operação. Antes de confirmar, confira a origem e todos os pacotes a instalar, atualizar, substituir ou remover.

O nome de um comando não garante a mesma versão ou o mesmo resultado em distribuições diferentes. Primeiro identifique o sistema e as ferramentas disponíveis; não execute o bloco APT e o bloco DNF como se fossem etapas consecutivas na mesma máquina:

cat /etc/os-release
command -v apt
command -v dnf

Os campos ID e ID_LIKE de /etc/os-release ajudam a identificar a distribuição e a família. O command -v mostra como o shell resolve o nome e retorna um estado não zero se não o encontrar; não certifica a política de pacotes nem que a ferramenta esteja configurada para aquela instalação. A ausência de um dos dois gerenciadores é esperada em muitos sistemas. Não instale o gerenciador de outra família apenas para reproduzir a tabela.

Comparar as tarefas básicas de APT e DNF

Objetivo Debian e Ubuntu: APT Rocky Linux: DNF
Procurar um pacote apt search tree dnf search tree
Consultar informações apt show tree dnf info tree
Verificar atualizações disponíveis sudo apt update e depois apt list --upgradable sudo dnf check-update
Instalar um pacote sudo apt install tree sudo dnf install tree
Atualizar pacotes instalados sudo apt upgrade sudo dnf upgrade
Remover um pacote sudo apt remove tree sudo dnf remove tree

O tree é apenas o pacote de exemplo: confira sua disponibilidade nos repositórios do sistema. Instalar, atualizar e remover altera a máquina; não execute as linhas da tabela apenas para ver uma saída. Registre se o pacote já estava instalado antes do exercício, para não removê-lo depois como se tivesse sido criado apenas para a prática.

No DNF do Rocky Linux 9, check-update retorna 100 quando encontra atualizações, 0 quando não encontra e 1 em caso de erro. Portanto, um retorno não zero não significa automaticamente falha nessa consulta. Em automação, um encadeamento simples com && também não executaria o comando seguinte quando a consulta retornasse 100; trate os estados explicitamente. A consulta pode atualizar metadados em cache, mas não instala as atualizações.

Usar APT no Debian ou Ubuntu

O APT gerencia pacotes do formato Debian, .deb. sudo apt update busca informações atuais dos repositórios configurados; ele não faz, por si só, o upgrade dos programas instalados. Examine os candidatos com apt list --upgradable e só então considere sudo apt upgrade. Execute uma linha de cada vez e confira o resultado antes de prosseguir:

sudo apt update
apt list --upgradable
sudo apt upgrade

O apt upgrade pode instalar novas dependências necessárias, mas não remove pacotes instalados para resolver a atualização. Se uma atualização exigir remoção, ela será mantida para outra decisão. O apt full-upgrade tem outro alcance e pode remover pacotes; não o use automaticamente como substituto porque um candidato ficou pendente. Antes de confirmar qualquer transação, leia as versões, os acréscimos, o volume de download e o espaço em disco.

Se a atualização dos índices apresentar falha, resolva a causa antes de instalar ou atualizar. Um índice antigo pode continuar disponível, e não é correto concluir que todas as fontes estão atualizadas só porque algumas responderam. Examine mensagens sobre rede, autenticação de repositórios e configuração sem desativar verificações de segurança para contorná-las. O apt é uma interface para uso interativo; em scripts, considere as ferramentas e opções estáveis indicadas pela distribuição, como apt-get.

Para um programa novo, pesquise e leia suas informações primeiro. No bloco seguinte, o terceiro comando instala o pacote; o último apenas consulta a versão do executável encontrado no ambiente:

apt search tree
apt show tree
sudo apt install tree
tree --version

Leia o resumo proposto e confirme apenas se os pacotes, a origem e o impacto forem adequados. Se a instalação terminar com sucesso, tree --version deve mostrar uma versão, cujo número depende do repositório. Isso verifica a execução do comando encontrado no PATH, não todas as funções do pacote. Se houver dúvida sobre qual executável está sendo usado, consulte command -v tree.

Se o pacote não for encontrado, confira distribuição, nome e repositórios habilitados. No Ubuntu recente, a configuração padrão das fontes usa /etc/apt/sources.list.d/ubuntu.sources; outras instalações podem usar arquivos diferentes. Inspecione a configuração do seu sistema antes de alterá-la. Não acrescente uma fonte desconhecida nem execute um script de instalação encontrado na internet apenas para fazer o exemplo funcionar.

Usar DNF no Rocky Linux

O Rocky Linux gerencia pacotes RPM com o DNF. No escopo do Rocky Linux 9 desta aula, consulte nome, descrição, versão e repositório com dnf search e dnf info; a instalação é solicitada com sudo dnf install. Informações de um pacote disponível não comprovam, sozinhas, que ele esteja instalado. Leia a transação e não acrescente -y para aceitar automaticamente alterações que ainda não avaliou.

dnf search tree
dnf info tree
sudo dnf install tree
tree --version

Aqui também o terceiro comando solicita a instalação, e o quarto verifica a versão do executável. Revise dependências, substituições e eventuais remoções antes de confirmar. Depois, leia o estado de saída e as mensagens, e verifique o resultado; não presuma que a última linha de um bloco prova que todas as anteriores tiveram sucesso. Para consultar quais repositórios estão habilitados, use dnf repolist --enabled.

Consultar atualizações e aplicá-las são ações diferentes. Execute a consulta abaixo, interprete o estado 0, 100 ou 1 e só depois decida sobre o upgrade. Se houver erro, investigue antes de continuar:

sudo dnf check-update
sudo dnf upgrade

O upgrade tenta atualizar para versões disponíveis cujas dependências possam ser resolvidas. Uma versão aparecer em check-update não garante que ela será instalada na transação seguinte: dependências, regras e o estado dos repositórios influenciam a solução. O DNF usa metadados conforme sua configuração de cache; quando precisar forçar a sincronização de metadados antes da consulta, a opção --refresh existe, mas falhas dessa sincronização precisam ser resolvidas.

Uma atualização normal de pacotes não é uma migração para a próxima versão principal do Rocky Linux. O guia oficial de versões principais orienta uma instalação nova com migração planejada dos dados e serviços, e não um upgrade no próprio sistema entre versões principais. Confira o procedimento da versão de destino, compatibilidade e recuperação antes de planejar essa mudança.

O que revisar antes e depois da alteração?

  1. Identifique família, versão e arquitetura do sistema e os repositórios habilitados. Confirme que o pacote venha de uma fonte oficial ou de outra fonte cuja confiança tenha sido estabelecida para aquele ambiente.
  2. Leia nome, versão, descrição e dependências. Um nome parecido não garante a mesma função, e um resultado de busca não comprova instalação.
  3. Revise acréscimos, atualizações, substituições, remoções e uso de disco na transação concreta. Em um servidor, prepare uma janela de manutenção e recuperação dos serviços; pacotes podem executar scripts ou reiniciar componentes.
  4. Após cada comando, confira o estado de saída e as mensagens. Diferencie o 100 de dnf check-update de uma falha; verifique a versão do programa e o estado dos serviços afetados quando necessário.
  5. Não presuma que seja possível desfazer tudo com outro comando. A recuperação depende de backups utilizáveis, versões ainda disponíveis, configurações e instruções da distribuição.

A necessidade de reiniciar serviços ou a máquina depende dos componentes alterados e da política de operação. Instalar um kernel novo não troca imediatamente o kernel em execução: uname -r mostra o que está rodando, e não todos os kernels instalados. Planeje um reinício quando necessário, considerando acesso pelo console e impacto nos serviços.

Cuidar da remoção e da limpeza

apt remove e dnf remove removem o pacote solicitado e podem propor outras alterações por dependências; leia o conjunto completo antes de aceitar. No APT, purge inclui a remoção de configurações gerenciadas pelo pacote, mas não significa apagar todos os arquivos pessoais ou dados que a aplicação tenha criado. O efeito concreto também depende dos scripts do pacote.

O autoremove procura dependências instaladas automaticamente que o gerenciador considera desnecessárias. Confira se a lista inclui algo que você ainda usa e se a classificação de instalação automática está correta. Não use a remoção como uma forma de backup ou como garantia de recuperar exatamente o estado anterior.

O dnf history ajuda a investigar transações anteriores. A existência de um registro não garante uma reversão completa: versões antigas podem não estar mais disponíveis, e configurações, dados, scripts executados e alterações de fontes externas podem exigir recuperação separada. Preserve os dados necessários antes da primeira mudança.

Fontes primárias

O guia de gerenciamento de pacotes do Ubuntu Server explica índices, instalação e atualizações. O manual apt(8), do Debian distingue upgrade, full-upgrade e o uso interativo. A referência de comandos do DNF documenta instalação, consulta, upgrade, remoção e histórico. O guia oficial de mudanças de versão do Rocky Linux descreve o alcance da migração entre versões principais.