Ubuntu Server / do-release-upgrade / Come aggiornare la versione di Ubuntu
Per passare Ubuntu Server alla versione successiva del sistema operativo, usa sudo do-release-upgrade. Prima aggiorna completamente i pacchetti della versione attuale, verifica un percorso supportato e prepara un backup che sia possibile ripristinare.
Aggiornamento dei pacchetti e avanzamento di versione
do-release-upgrade adatta i pacchetti di base e la configurazione del sistema alla versione successiva di Ubuntu. È diverso da apt update, che aggiorna gli elenchi dei pacchetti, e da apt upgrade, che aggiorna i pacchetti all’interno della versione attuale. Per la gestione ordinaria, consulta la guida ad apt su Ubuntu Server.
Le versioni LTS (Long Term Support, supporto a lungo termine) si aggiornano in sequenza alla LTS immediatamente successiva. Per esempio, per passare da 22.04 LTS a 26.04 LTS occorre attraversare 24.04 LTS e verificare il funzionamento a ogni passaggio. Non sostituire in blocco i nomi in codice dei repository per saltare versioni. Percorsi e periodi di supporto sono indicati nel ciclo delle versioni di Ubuntu.
Una nuova LTS non viene proposta immediatamente a tutti i server esistenti. Gli avanzamenti tra LTS vengono generalmente abilitati dopo la prima versione di manutenzione, o point release; verifica l’effettiva disponibilità con lo strumento. Per una versione non più supportata, pianifica separatamente recupero o migrazione, senza presumere che questa procedura sia applicabile senza modifiche.
Preparare backup e accesso di recupero
Pianifica un’interruzione del servizio e usa un account con privilegi amministrativi. Leggi le note della versione di destinazione e i requisiti di supporto delle applicazioni. L’avvio del server web non garantisce che PHP, database ed estensioni funzionino correttamente.
- Backup: conserva dati dei servizi, database, configurazioni in
/etc, certificati e segreti necessari al recupero in una posizione separata e sicura. Usa un metodo di backup coerente adatto al database e verifica il ripristino. Un semplice snapshot di una macchina virtuale in esecuzione non garantisce la coerenza del database. - Accesso di recupero: prepara e prova una console fisica, di gestione remota o seriale cloud utilizzabile se SSH (Secure Shell) si disconnette. Anche se esegui l’aggiornamento via SSH, non affidarti a SSH come unica via di recupero.
- Condizioni del cloud: controlla i requisiti del fornitore per immagine, kernel, metodo di avvio e agenti di gestione. Non tutti i server cloud vietano gli aggiornamenti sul sistema esistente. Se il ripristino è difficile o la compatibilità richiede verifiche preventive, confronta anche la creazione di un nuovo server con migrazione dei dati.
I comandi seguenti controllano versione attuale, spazio e inode disponibili, stati incompleti dei pacchetti e pacchetti bloccati. Non avviano l’avanzamento di versione.
cat /etc/os-release
uname -r
df -h / /boot
df -i / /boot
sudo dpkg --audit
apt-mark showhold
Annota VERSION_ID e risolvi prima la mancanza di spazio su / e /boot. Lo spazio richiesto dipende dall’installazione e dalle modifiche previste. Indaga sui problemi segnalati da dpkg --audit e comprendi i motivi dei blocchi prima di modificarli. Non rimuovere tutti i blocchi soltanto per superare i controlli.
Aggiornare la versione attuale e controllare la politica
- Aggiorna gli elenchi dei pacchetti della versione attuale e applica tutti gli aggiornamenti. Questi comandi preparatori sono riportati nella procedura ufficiale di Ubuntu Server.
sudo apt update
sudo apt dist-upgrade -o APT::Get::Always-Include-Phased-Updates=true
dist-upgrade adatta le dipendenze usando i repository configurati e può rimuovere pacchetti. Leggi il piano e fermati se vengono rimossi inaspettatamente pacchetti importanti. L’opzione include gli aggiornamenti distribuiti gradualmente; il comando non cambia da solo la versione di Ubuntu. Verifica che entrambi i comandi riescano e che non rimangano aggiornamenti in sospeso.
- Controlla se esiste
/run/reboot-required. La sua presenza indica che occorre riavviare per completare gli aggiornamenti attuali.
if [ -f /run/reboot-required ]; then
cat /run/reboot-required
fi
Se necessario, esegui sudo reboot durante la manutenzione, riconnettiti e controlla i servizi prima di proseguire. L’assenza del file non significa che la verifica delle applicazioni sia completata.
- Se manca
do-release-upgrade, installa il pacchetto che lo fornisce e controlla la politica di notifica delle versioni.
sudo apt install ubuntu-release-upgrader-core
cat /etc/update-manager/release-upgrades
Puoi saltare l’installazione se il comando è già disponibile. Per mantenere un server LTS sul percorso LTS, usa Prompt=lts nel file di configurazione. Prompt=normal considera anche le versioni intermedie, ma non consente di saltare versioni. Se devi modificarlo, salva una copia con un altro nome e cambia soltanto la voce pertinente con sudoedit /etc/update-manager/release-upgrades. La differenza è illustrata nella guida Ubuntu alle versioni LTS e intermedie.
Controllare la destinazione e avviare l’aggiornamento
Controlla prima se è disponibile un avanzamento di versione. L’opzione -c verifica ed esce senza avviare l’aggiornamento; non prova la compatibilità delle applicazioni.
sudo do-release-upgrade -c
Se non viene proposta una destinazione, verifica versione attuale, percorso supportato, Prompt, aggiornamenti in sospeso, rete e disponibilità. Nel manuale di do-release-upgrade, -d cerca una versione di sviluppo e può anche servire a valutare una nuova LTS prima della prima point release. Non aggiungerlo indiscriminatamente su un server di produzione per aggirare il messaggio che non ci sono nuove versioni.
Quando backup e accesso di recupero sono pronti e la destinazione proposta coincide con il piano, avvia il comando seguente. Non aggiungere opzioni di approvazione automatica e rimani disponibile per rispondere alle domande.
sudo do-release-upgrade
- Riepilogo delle modifiche: controlla destinazione, pacchetti da rimuovere o installare, dimensione del download e spazio necessario. Se viene rimosso un servizio essenziale o il piano è inatteso, fermati prima di approvare e indaga. Una volta iniziata l’installazione dei pacchetti, non terminare forzatamente il processo e non spegnere il server.
- File di configurazione: confronta il file esistente con quello del manutentore del pacchetto. Segui le istruzioni effettive per visualizzare le differenze, conservare o sostituire il file. Conservare tutto o sostituire tutto può far perdere impostazioni dei servizi o modifiche essenziali per la nuova versione.
- Repository esterni e accesso: PPA (Personal Package Archives) e repository di terze parti vengono disabilitati durante l’aggiornamento. Se lo strumento segnala una porta SSH di recupero separata, verifica firewall e regole cloud in base al messaggio e limita l’accesso agli amministratori. Non disattivare tutto il firewall e non lasciare porte inutili aperte permanentemente.
Controlla anche l’elenco prima di accettare la rimozione dei pacchetti obsoleti. Se al termine è richiesto un riavvio, eseguilo durante la manutenzione e mantieni la console fino alla conclusione dei controlli.
Verificare versione e servizi dopo il riavvio
Riconnettiti e controlla la versione di destinazione e gli eventuali servizi non riusciti. Confronta il kernel con il dato precedente o con le informazioni dei pacchetti di destinazione e aggiorna nuovamente gli elenchi dei pacchetti.
cat /etc/os-release
uname -r
systemctl --failed
sudo apt update
apt list --upgradable
Conferma che VERSION_ID corrisponda al valore previsto e indaga su ogni errore di systemctl --failed. Anche senza unità non riuscite, prova risposte web, letture e scritture del database, attività pianificate, monitoraggio e backup secondo i requisiti reali dei servizi. Prova una nuova sessione SSH prima di chiudere la console di recupero.
Riconfigura soltanto i repository esterni necessari, dopo aver verificato il supporto per la nuova versione di Ubuntu e la compatibilità dei pacchetti installati. Non riattivare in blocco quelli con il vecchio nome in codice. Procedi con ulteriori pulizie solo quando i servizi sono stabili, controllando i pacchetti proposti per la rimozione.
Gestire errori e disconnessioni
Conserva l’ultimo messaggio di errore e i log in /var/log/dist-upgrade/. Anche le indicazioni Ubuntu per segnalare problemi di aggiornamento citano questi log. Elenca prima i file e leggi quelli presenti per individuare la fase fallita e le cause relative ai pacchetti.
sudo ls -lah /var/log/dist-upgrade/
sudo less /var/log/dist-upgrade/main.log
Se SSH si disconnette, usa prima la console di recupero per controllare il processo già in corso e il suo avanzamento. Non avviare un altro aggiornamento e non cancellare i file di blocco APT soltanto per la disconnessione. Un’interruzione durante l’elaborazione dei pacchetti richiede un recupero basato sui log e sullo stato attuale.
Non esiste un unico comando generale per annullare l’avanzamento e tornare alla precedente versione di Ubuntu. Se occorre ripristinare, usa backup verificati del server e del database relativi a un momento coerente, oppure torna al server precedente già preparato. Considera come conservare le scritture successive al backup. Ripristinare soltanto il file di configurazione Prompt non recupera un sistema operativo già modificato.




