Upgrade de Ubuntu LTS no Droplet (20/22 → 24.04)
Objetivo
Atualizar o sistema operacional de um Droplet Ubuntu para Ubuntu 24.04 LTS.
- Caminho padrão: Ubuntu 22.04 LTS → 24.04 LTS
- Caminho legado: Ubuntu 20.04 LTS → 22.04 LTS → 24.04 LTS
Observação: neste procedimento não houve problemas com SSH/UFW. O único ajuste pós-upgrade necessário foi no yq (remoção de entradas antigas e instalação via snap).
Pré-requisitos
- Acesso root ou sudo
- Janela para reinício do servidor
- Snapshot/Backup do Droplet antes de iniciar (recomendado)
1) Preparação (antes do upgrade)
1.1 Verificações básicas
lsb_release -a
uname -r
df -h /
free -h
1.2 Atualizar o sistema completamente no release atual
sudo apt update
sudo apt -y full-upgrade
sudo apt -y autoremove --purge
sudo reboot
Após o reboot:
sudo systemctl --failed
2) Configurar release upgrades para LTS
Verifique o arquivo:
sudo nano /etc/update-manager/release-upgrades
Garanta:
Prompt=lts
3) Upgrade Ubuntu 22.04 → 24.04
Instale o componente (se necessário):
sudo apt install -y update-manager-core
Inicie o upgrade:
sudo do-release-upgrade
Ao final:
sudo reboot
4) Upgrade Ubuntu 20.04 → 22.04 → 24.04 (quando aplicável)
No Ubuntu 20.04, primeiro faça upgrade para 22.04:
- Atualize tudo no 20.04:
sudo apt update
sudo apt -y full-upgrade
sudo apt -y autoremove --purge
sudo reboot
- Rode:
sudo apt install -y update-manager-core
sudo do-release-upgrade
sudo reboot
- Já no 22.04, repita o processo do capítulo 3 para ir ao 24.04.
5) Prompt do dpkg: arquivo /etc/crontab
Durante o upgrade, pode aparecer o prompt:
Configuration file '/etc/crontab' Modified since installation + maintainer shipped new version
Ação recomendada (padrão):
- Pressione
Npara manter a versão atual (seus agendamentos).
Opcional:
- Pressione
Dpara ver diferenças e depoisN.
Motivo: evita sobrescrever crons customizados.
6) Pós-upgrade: validações
Confirmação de versão:
lsb_release -a
cat /etc/os-release
uname -r
Serviços com falha:
sudo systemctl --failed
Cron:
sudo systemctl status cron --no-pager
Docker (se aplicável):
docker ps -a
docker compose ps 2>/dev/null || true
7) Correção do YQ (pós-upgrade Ubuntu 24.04)
7.1 Sintoma
Ao executar yq, aparece:
ModuleNotFoundError: No module named 'yq'- Geralmente apontando para
/usr/local/bin/yq(instalação antiga via pip)
7.2 Diagnóstico
which -a yq
type -a yq
ls -l /usr/local/bin/yq /snap/bin/yq 2>/dev/null
7.3 Correção aplicada (padronizada)
- Remover o binário antigo que “ganha” no PATH:
sudo rm -f /usr/local/bin/yq
hash -r
- Instalar o yq via snap:
sudo snap install yq
- Validar:
which yq
yq --version
Observação: se existir
/snap/bin/yq, ele deve ser o binário usado após a limpeza do/usr/local/bin/yq.
8) Troubleshooting rápido
8.1 “container … is not running”
Isso é independente do yq: algum script tentou executar comando em container parado.
Ver estado e logs:
docker ps -a --no-trunc | head
docker logs --tail 200 <container_id>
Se usa compose:
docker compose up -d
docker compose ps
Checklist final
- Snapshot feito
- Sistema atualizado antes do upgrade (
full-upgrade) - Upgrade executado com
do-release-upgrade - Reboot OK
systemctl --failedsem itens críticos- Cron ativo (
systemctl status cron) - yq corrigido (removido
/usr/local/bin/yq+snap install yq) - Docker/serviços OK