Poupe até 53% em Servidores VPS, escolha agora. Oferta limitada.

Como fazer rollback de pacotes no AlmaLinux 9 com segurança

16 min de leitura  ·  Guia técnico

Rollback de pacotes no AlmaLinux 9 é o processo de reverter uma atualização de software para uma versão anterior usando o gerenciador de pacotes DNF. Para desfazer uma atualização com segurança, siga estes passos:

  1. Faça backup do sistema ou crie um snapshot antes de qualquer alteração.
  2. Liste o histórico de transações com dnf history list.
  3. Identifique o ID da transação que deseja reverter com dnf history info <ID>.
  4. Execute o rollback com dnf history undo <ID> ou use dnf downgrade <pacote> para um pacote específico.
  5. Verifique se o serviço afetado voltou a funcionar corretamente após o rollback.

Pré-requisitos para fazer rollback de pacotes no AlmaLinux 9

  • Acesso root ou usuário com privilégios sudo via SSH ao servidor AlmaLinux 9.
  • AlmaLinux 9.x com DNF versão 4.x instalado (padrão na distribuição).
  • Espaço em disco suficiente para manter o cache de RPMs (/var/cache/dnf).
  • Backup recente do sistema ou snapshot do VPS antes de iniciar o procedimento.
  • Acesso ao terminal — consulte o guia Acessando servidores VPS Linux da AviraHost se precisar de ajuda com SSH.
  • Repositórios oficiais do AlmaLinux habilitados e com versões anteriores disponíveis.

Como verificar o histórico de atualizações no AlmaLinux 9 antes do rollback

Antes de reverter qualquer pacote, é fundamental entender o que foi alterado no sistema. O DNF registra cada transação — instalações, atualizações e remoções — em um banco de dados interno localizado em /var/lib/dnf/history. Esse histórico é a base para qualquer operação de rollback segura no AlmaLinux 9.

Execute o comando abaixo para listar todas as transações registradas:

dnf history list
ID     | Command line          | Date and time    | Action(s) | Altered
-------+-----------------------+------------------+-----------+--------
    12 | upgrade               | 2025-06-10 14:32 | U         | 47
    11 | install nginx         | 2025-06-08 09:15 | I         |  3
    10 | upgrade kernel        | 2025-06-05 11:00 | U         |  5
     9 | install mariadb       | 2025-06-01 16:45 | I         |  8

Para ver os detalhes de uma transação específica — quais pacotes foram atualizados, de qual versão para qual — use o ID correspondente:

dnf history info 12
Transaction ID : 12
Begin time     : Tue Jun 10 14:32:01 2025
Begin rpmdb    : ...
End time       : Tue Jun 10 14:33:45 2025 (104 seconds)
End rpmdb      : ...
User           : root <root>
Return-Code    : Success
Command Line   : upgrade
Packages Altered:
    Upgrade  curl-7.76.1-29.el9_4.x86_64 -> curl-7.76.1-31.el9_5.x86_64
    Upgrade  openssl-3.0.7-24.el9.x86_64 -> openssl-3.0.7-27.el9_5.x86_64
    Upgrade  nginx-1.20.1-14.el9.x86_64  -> nginx-1.20.1-16.el9.x86_64

Com essas informações em mãos, você consegue identificar exatamente qual transação causou o problema e decidir entre reverter a transação inteira ou fazer o downgrade de um pacote específico.

Para listar todas as versões disponíveis de um pacote nos repositórios — útil para confirmar se a versão anterior ainda está acessível — use:

dnf repoquery --showduplicates nginx
nginx-1:1.20.1-14.el9.x86_64
nginx-1:1.20.1-16.el9.x86_64

Como fazer rollback de uma transação inteira com dnf history undo

O comando dnf history undo é a forma mais abrangente de reverter atualizações no AlmaLinux 9. Ele desfaz uma transação completa, restaurando todos os pacotes envolvidos para as versões anteriores de uma só vez — ideal quando uma atualização em lote quebrou algum serviço.

Atenção: o dnf history undo é uma operação destrutiva. Ela remove pacotes instalados e reinstala versões antigas. Sempre crie um snapshot ou backup antes de prosseguir.

Com o ID da transação identificado (por exemplo, ID 12), execute:

dnf history undo 12
Loaded plugins: fastestmirror
Undoing transaction 12, from Tue Jun 10 14:32:01 2025
    Downgrade curl-7.76.1-29.el9_4.x86_64
    Downgrade openssl-3.0.7-24.el9.x86_64
    Downgrade nginx-1.20.1-14.el9.x86_64
Is this ok [y/N]:

Confirme digitando y e pressione Enter. O DNF resolverá as dependências automaticamente e instalará as versões anteriores. Ao final, você verá:

Complete!

Para verificar se o rollback foi aplicado corretamente, consulte a versão atual do pacote:

rpm -q nginx
nginx-1.20.1-14.el9.x86_64

Se o pacote revertido for um serviço como Nginx, Apache ou MariaDB, reinicie-o após o rollback:

systemctl restart nginx
systemctl status nginx

Como fazer downgrade de um pacote específico no AlmaLinux 9

Quando apenas um pacote específico precisa ser revertido — sem afetar outros componentes da transação — o dnf downgrade é a abordagem mais cirúrgica e segura. Esse comando instala a versão imediatamente anterior disponível nos repositórios configurados.

Para fazer o downgrade de um pacote, use a sintaxe:

dnf downgrade <nome-do-pacote>

Exemplo prático revertendo o OpenSSL para a versão anterior:

dnf downgrade openssl
Dependencies resolved.
==========================================================================
 Package         Arch    Version                  Repository         Size
==========================================================================
Downgrading:
 openssl         x86_64  3.0.7-24.el9             baseos            1.2 M
 openssl-libs    x86_64  3.0.7-24.el9             baseos            2.1 M

Transaction Summary
==========================================================================
Downgrade  2 Packages

Is this ok [y/N]:

Se quiser especificar exatamente qual versão instalar (não apenas a imediatamente anterior), use a notação completa com versão e release:

dnf downgrade openssl-3.0.7-24.el9.x86_64

Após o downgrade, confirme a versão instalada:

rpm -q openssl
openssl-3.0.7-24.el9.x86_64

Para evitar que o DNF atualize automaticamente o pacote revertido em futuras execuções de dnf upgrade, adicione-o à lista de exclusões no arquivo /etc/dnf/dnf.conf:

echo "exclude=openssl*" >> /etc/dnf/dnf.conf

Ou use o plugin versionlock para travar a versão de forma mais controlada:

dnf install python3-dnf-plugin-versionlock
dnf versionlock add openssl
Adding versionlock on: openssl-3.0.7-24.el9.*

Como manter cache de RPMs para rollback offline no AlmaLinux 9

Uma limitação importante do rollback via DNF é a dependência dos repositórios remotos: se a versão anterior de um pacote não estiver mais disponível online, o downgrade falhará. A solução é configurar o DNF para manter os pacotes baixados em cache local antes de cada atualização.

Edite o arquivo de configuração principal do DNF:

vi /etc/dnf/dnf.conf

Adicione ou altere as seguintes diretivas:

[main]
keepcache=1
cachedir=/var/cache/dnf

Com keepcache=1, o DNF não apagará os RPMs baixados após a instalação. Isso permite reinstalar versões anteriores mesmo que elas sejam removidas dos repositórios remotos.

Para instalar um pacote diretamente de um RPM em cache, localize o arquivo e use:

find /var/cache/dnf -name "nginx*.rpm" 2>/dev/null
/var/cache/dnf/appstream-xxxxxxxx/packages/nginx-1.20.1-14.el9.x86_64.rpm
dnf install /var/cache/dnf/appstream-xxxxxxxx/packages/nginx-1.20.1-14.el9.x86_64.rpm

Outra prática recomendada é criar um repositório local com os RPMs antes de atualizar. Isso é especialmente útil em ambientes de produção onde a disponibilidade dos pacotes nos repositórios oficiais não pode ser garantida a longo prazo. Para mais dicas de otimização e boas práticas em servidores Linux, consulte o artigo Dicas de Otimização de Servidores Linux.

Como reverter atualização do kernel no AlmaLinux 9

O rollback do kernel no AlmaLinux 9 funciona de forma diferente dos demais pacotes: o sistema mantém múltiplas versões do kernel instaladas simultaneamente, permitindo selecionar qual versão inicializar sem precisar desinstalar a mais recente. Essa é uma das situações mais críticas onde o rollback se torna necessário.

Primeiro, liste os kernels instalados:

rpm -q kernel
kernel-5.14.0-427.13.1.el9_4.x86_64
kernel-5.14.0-503.35.1.el9_5.x86_64

Para definir qual kernel será usado na próxima inicialização, liste as entradas do GRUB:

grubby --info=ALL | grep -E "^(index|title|kernel)"
index=0
kernel="/boot/vmlinuz-5.14.0-503.35.1.el9_5.x86_64"
title="AlmaLinux (5.14.0-503.35.1.el9_5.x86_64) 9.5"
index=1
kernel="/boot/vmlinuz-5.14.0-427.13.1.el9_4.x86_64"
title="AlmaLinux (5.14.0-427.13.1.el9_4.x86_64) 9.4"

Para definir o kernel anterior como padrão de boot:

grubby --set-default /boot/vmlinuz-5.14.0-427.13.1.el9_4.x86_64
The default is /boot/loader/entries/...-5.14.0-427.13.1.el9_4.x86_64.conf
with index 1 and kernel /boot/vmlinuz-5.14.0-427.13.1.el9_4.x86_64

Atenção: reiniciar o servidor é necessário para que a mudança de kernel tenha efeito. Em ambientes de produção, planeje uma janela de manutenção antes de executar o reboot.

reboot

Após reiniciar, confirme qual kernel está em uso:

uname -r
5.14.0-427.13.1.el9_4.x86_64

Se o kernel anterior funcionar corretamente, você pode remover o kernel problemático para liberar espaço:

dnf remove kernel-5.14.0-503.35.1.el9_5.x86_64

Problemas comuns e como resolver

Sintoma: dnf history undo falha com erro de dependência

Causa: Após a transação que você quer reverter, outros pacotes foram instalados ou atualizados e agora dependem da versão mais nova do pacote que você está tentando rebaixar. O DNF detecta o conflito e interrompe a operação.
Solução: Execute dnf history undo <ID> --skip-broken para ignorar pacotes com conflito irresolvível, ou identifique os pacotes dependentes com dnf repoquery --whatrequires <pacote> e faça o downgrade deles também antes de reverter o pacote principal. Em último caso, use rpm -e --nodeps <pacote> para remover forçadamente, mas com cautela.

Sintoma: versão anterior do pacote não encontrada nos repositórios

Causa: Os repositórios oficiais do AlmaLinux 9 removeram a versão anterior do pacote, o que é comum após atualizações de segurança. O DNF não consegue baixar o RPM necessário para o downgrade.
Solução: Verifique se o pacote está em cache local com find /var/cache/dnf -name "<pacote>*.rpm". Se não houver cache, procure o RPM no repositório de versões do AlmaLinux (vault.almalinux.org) ou em mirrors alternativos. Baixe o RPM manualmente e instale com dnf install ./pacote.rpm. Para evitar esse problema no futuro, ative keepcache=1 no /etc/dnf/dnf.conf.

Sintoma: serviço não inicia após rollback do pacote

Causa: Arquivos de configuração modificados durante a atualização podem ser incompatíveis com a versão anterior do pacote. O DNF reverte os binários, mas não os arquivos de configuração em /etc.
Solução: Verifique os logs do serviço com journalctl -u <servico> -n 50 para identificar o erro específico. Compare o arquivo de configuração atual com o padrão da versão anterior usando rpm -qc <pacote> para listar os arquivos de configuração do pacote. Se necessário, restaure o arquivo de configuração do backup ou renomeie o atual e deixe o pacote gerar um novo padrão.

Sintoma: dnf history list não mostra transações antigas

Causa: O banco de dados de histórico do DNF pode ter sido limpo manualmente com dnf history clear, ou o arquivo de banco de dados em /var/lib/dnf/history foi corrompido ou removido.
Solução: Se o histórico foi apagado, o dnf history undo não estará disponível para transações antigas. Nesse caso, use rpm -qa --last para listar pacotes instalados por data e identifique manualmente quais precisam de downgrade. Execute dnf downgrade <pacote> individualmente para cada pacote afetado.

Perguntas frequentes sobre rollback de pacotes no AlmaLinux 9

É possível reverter qualquer atualização de pacote no AlmaLinux 9?

Na maioria dos casos, sim. O comando dnf history undo permite reverter transações registradas pelo gerenciador de pacotes. Porém, pacotes que modificam bancos de dados internos ou arquivos de configuração podem exigir restauração manual adicional. Sempre faça backup antes de executar o rollback.

Qual a diferença entre dnf history undo e dnf downgrade?

O dnf history undo reverte uma transação inteira registrada no histórico, incluindo múltiplos pacotes instalados juntos. Já o dnf downgrade atua em um único pacote específico, instalando a versão anterior disponível nos repositórios. Use history undo para reverter atualizações em lote e downgrade para ajustes cirúrgicos em pacotes individuais.

O AlmaLinux 9 mantém versões antigas de pacotes nos repositórios?

O AlmaLinux 9 mantém versões anteriores nos repositórios oficiais por um período limitado. Para garantir acesso a versões específicas mais antigas, é recomendável ativar o repositório de versões ou manter um cache local de RPMs antes de atualizar. O comando dnf repoquery --showduplicates lista todas as versões disponíveis nos repositórios atualmente configurados.

Como verificar o histórico de atualizações antes de fazer rollback no AlmaLinux 9?

Execute dnf history list para listar todas as transações com seus IDs e datas. Use dnf history info <ID> para ver os detalhes de uma transação específica, incluindo quais pacotes foram instalados, atualizados ou removidos. Isso permite identificar exatamente qual transação reverter sem risco de desfazer alterações desnecessárias.

O rollback de pacotes no AlmaLinux 9 afeta as dependências automaticamente?

Sim. O dnf history undo e o dnf downgrade resolvem dependências automaticamente, revertendo ou rebaixando pacotes dependentes quando necessário. Porém, conflitos de dependência podem ocorrer se outros pacotes instalados após a transação dependerem da versão mais nova. Nesse caso, o DNF exibirá um aviso detalhado antes de prosseguir, permitindo que você avalie o impacto antes de confirmar.

Conclusão

  • Use dnf history undo <ID> para reverter transações completas e dnf downgrade <pacote> para ajustes pontuais em pacotes individuais no AlmaLinux 9.
  • Ative keepcache=1 no /etc/dnf/dnf.conf e use dnf versionlock para travar versões estáveis, garantindo que o rollback seja possível mesmo quando os repositórios remotos não mantiverem versões antigas.
  • Sempre crie um snapshot ou backup antes de qualquer atualização em produção — o rollback via DNF cobre a maioria dos cenários, mas não substitui uma política de backup completa para arquivos de configuração e dados de aplicação.

Leia também

Precisa de ajuda com seu servidor AlmaLinux 9?

Gerenciar atualizações e rollbacks com segurança exige um ambiente estável e com recursos adequados. Os planos de VPS da AviraHost oferecem snapshots integrados e suporte técnico para situações críticas como esta.

Conheça os planos de VPS da AviraHost

  • 0 Os usuários acharam isso útil
  • AlmaLinux, dnf, rollback, gerenciamento-pacotes, AviraHost, linux-servidor, downgrade
Esta resposta foi útil?

Artigos Relacionados

Guia Completo: Como escolher o melhor plano de hospedagem para o seu site

Escolher o plano de hospedagem ideal para o seu site é fundamental para garantir seu bom...

Lista Prática: 5 Vantagens de ter SSL gratuito no seu site

Ter um certificado SSL no seu site não é apenas uma questão de segurança, mas também uma...

Comparativo: Hospedagem de sites vs. VPS: qual é a melhor opção?

Quando se trata de escolher entre hospedagem compartilhada ou VPS, as opções variam de acordo...

Dicas de Otimização de Servidores Linux

Dicas de Otimização de Servidores Linux Servidores Linux são amplamente utilizados por sua...

Como Implementar Soluções Eficientes para Melhorar a Gestão de Serviços Online

Como Implementar Soluções Eficientes para Melhorar a Gestão de Serviços Online...