Ubuntu Server / do-release-upgrade / Como atualizar a versão do Ubuntu

Para passar o Ubuntu Server para a próxima versão do sistema operacional, use sudo do-release-upgrade. Antes, atualize completamente os pacotes da versão atual, confirme um caminho de atualização compatível e prepare um backup que possa restaurar.

Atualização de pacotes e atualização de versão

do-release-upgrade adapta os pacotes básicos e a configuração do sistema à próxima versão do Ubuntu. É diferente de apt update, que atualiza as listas de pacotes, e de apt upgrade, que atualiza os pacotes dentro da versão atual. Para a manutenção cotidiana, consulte o guia do apt no Ubuntu Server.

As versões LTS (Long Term Support, suporte de longo prazo) são atualizadas sequencialmente para a LTS seguinte. Por exemplo, para passar da 22.04 LTS para a 26.04 LTS, é necessário passar pela 24.04 LTS e verificar o funcionamento em cada etapa. Não substitua em massa os nomes de código dos repositórios para pular versões. Consulte os caminhos e períodos de suporte no ciclo de versões do Ubuntu.

Uma nova LTS não é oferecida imediatamente a todos os servidores existentes. Atualizações entre LTS geralmente são liberadas após a primeira versão pontual; confirme a disponibilidade real com a ferramenta. Se a versão já está sem suporte, planeje separadamente a recuperação ou migração, sem presumir que este procedimento se aplica sem alterações.

Preparar backups e acesso de recuperação

Reserve uma janela de indisponibilidade e use uma conta com privilégios administrativos. Leia as notas da versão de destino e os requisitos de suporte das aplicações. O servidor Web iniciar não garante que PHP, banco de dados e extensões funcionem corretamente.

  • Backups: guarde dados dos serviços, bancos de dados, configurações em /etc, certificados e segredos necessários à recuperação em um local separado e seguro. Use um método de backup consistente próprio do banco de dados e verifique a restauração. Um snapshot de uma máquina virtual em execução, sozinho, não garante consistência do banco.
  • Acesso de recuperação: prepare e teste um console físico, de gerenciamento remoto ou serial da nuvem que funcione se o SSH (Secure Shell) cair. Mesmo realizando a atualização por SSH, não dependa dele como único meio de recuperação.
  • Condições da nuvem: confira o suporte do provedor à imagem, ao kernel, ao método de inicialização e aos agentes de gerenciamento. Nem todo servidor em nuvem proíbe atualizações no próprio sistema. Se restaurar for difícil ou a compatibilidade exigir testes prévios, compare também a criação de um novo servidor com migração dos dados.

Os comandos a seguir verificam a versão atual, espaço e inodes disponíveis, estados incompletos de pacotes e pacotes retidos. Eles não iniciam a atualização de versão.

cat /etc/os-release
uname -r
df -h / /boot
df -i / /boot
sudo dpkg --audit
apt-mark showhold

Registre VERSION_ID e resolva primeiro a falta de espaço em / e /boot. A necessidade de espaço depende da instalação e das alterações previstas. Investigue problemas apontados por dpkg --audit e entenda os motivos das retenções antes de alterá-las. Não remova todas as retenções apenas para passar nas verificações.

Atualizar a versão atual e conferir a política

  1. Atualize as listas de pacotes da versão atual e aplique todas as atualizações. Estes comandos preparatórios estão no procedimento oficial do Ubuntu Server.
sudo apt update
sudo apt dist-upgrade -o APT::Get::Always-Include-Phased-Updates=true

dist-upgrade ajusta dependências nos repositórios configurados e pode remover pacotes. Leia o plano e pare se houver remoção inesperada de pacotes importantes. A opção inclui atualizações em distribuição gradual; o comando, por si só, não troca a versão do Ubuntu. Confirme que ambos os comandos terminam com sucesso e que não restam atualizações pendentes.

  1. Verifique se existe /run/reboot-required. A presença do arquivo indica que é necessário reiniciar para concluir as atualizações atuais.
if [ -f /run/reboot-required ]; then
    cat /run/reboot-required
fi

Se necessário, execute sudo reboot durante a manutenção, reconecte-se e verifique os serviços antes de continuar. A ausência do arquivo não significa que a validação das aplicações terminou.

  1. Se do-release-upgrade não estiver disponível, instale o pacote que fornece o comando e examine a política de notificação de versões.
sudo apt install ubuntu-release-upgrader-core
cat /etc/update-manager/release-upgrades

Você pode pular a instalação se o comando já existir. Para manter um servidor LTS no caminho LTS, use Prompt=lts no arquivo de configuração. Prompt=normal também considera versões intermediárias; não permite pular versões. Se precisar alterar, faça backup do arquivo com outro nome e edite apenas a opção relevante com sudoedit /etc/update-manager/release-upgrades. A diferença está no guia do Ubuntu sobre LTS e versões intermediárias.

Conferir o destino e iniciar a atualização

Primeiro verifique se há uma atualização de versão disponível. A opção -c apenas verifica e encerra, sem iniciar a atualização; ela não testa a compatibilidade das aplicações.

sudo do-release-upgrade -c

Se nenhum destino for oferecido, confira a versão atual, o caminho suportado, Prompt, atualizações pendentes, rede e disponibilidade. No manual do do-release-upgrade, -d procura uma versão de desenvolvimento e também pode ser usado para avaliar uma nova LTS antes da primeira versão pontual. Não o acrescente indiscriminadamente em produção para contornar uma mensagem de que não há nova versão.

Com backups e acesso de recuperação prontos e o destino de acordo com o plano, execute o comando abaixo. Não acrescente opções de aprovação automática e permaneça disponível para responder às perguntas.

sudo do-release-upgrade
  • Resumo das alterações: confira o destino, pacotes a remover ou instalar, tamanho do download e espaço necessário. Se o plano remover um serviço essencial ou diferir do esperado, pare antes da aprovação e investigue. Depois que a instalação dos pacotes começar, não force o encerramento do processo nem desligue o servidor.
  • Arquivos de configuração: compare o arquivo existente com o fornecido pelo mantenedor do pacote. Siga as instruções reais da tela para ver diferenças, manter ou substituir arquivos. Manter tudo ou substituir tudo pode descartar configurações dos serviços ou mudanças essenciais da nova versão.
  • Repositórios externos e acesso: PPAs (Personal Package Archives) e repositórios de terceiros são desativados durante a atualização. Se a ferramenta informar uma porta SSH de recuperação separada, revise o firewall e as regras de segurança da nuvem conforme essa mensagem e restrinja o acesso aos administradores. Não desative todo o firewall nem deixe portas desnecessárias permanentemente abertas.

Leia também a lista antes de aceitar a remoção de pacotes obsoletos. Se for solicitado reiniciar ao final, faça isso na janela de manutenção e mantenha o console até concluir as verificações.

Verificar versão e serviços após reiniciar

Reconecte-se e confira a versão de destino e os serviços com falha. Compare o kernel com o registro anterior ou com as informações dos pacotes de destino e atualize novamente as listas de pacotes.

cat /etc/os-release
uname -r
systemctl --failed
sudo apt update
apt list --upgradable

Confirme se VERSION_ID é o esperado e investigue cada falha em systemctl --failed. Mesmo sem unidades com falha, teste respostas Web, leituras e gravações no banco, tarefas agendadas, monitoramento e backups conforme os requisitos reais dos serviços. Teste uma nova sessão SSH antes de fechar o console de recuperação.

Reconfigure apenas os repositórios externos necessários após confirmar o suporte à nova versão do Ubuntu e a compatibilidade dos pacotes instalados. Não reative todos os repositórios com o nome de código antigo. Faça limpezas adicionais somente quando os serviços estiverem estáveis, revisando os pacotes propostos para remoção.

Lidar com erros e conexões interrompidas

Preserve a última mensagem de erro e os logs em /var/log/dist-upgrade/. As orientações do Ubuntu para relatar falhas de atualização também indicam esses logs. Liste primeiro os arquivos e leia os que existirem para identificar a etapa da falha e possíveis causas relacionadas aos pacotes.

sudo ls -lah /var/log/dist-upgrade/
sudo less /var/log/dist-upgrade/main.log

Se o SSH cair, use primeiro o console de recuperação para verificar o processo existente e seu andamento. Não inicie outra atualização nem exclua arquivos de bloqueio do APT apenas porque a conexão caiu. Uma interrupção no processamento de pacotes exige recuperação adequada aos logs e ao estado atual.

Não existe um comando único e geral para desfazer uma atualização de versão e voltar ao Ubuntu anterior. Se for necessário restaurar, use backups testados do servidor e do banco correspondentes a um momento consistente ou volte ao servidor anterior preparado. Considere como preservar gravações realizadas desde o backup. Restaurar apenas o arquivo de configuração Prompt não recupera um sistema operacional já alterado.