Guida all'Aggiornamento da Debian 12 Bookworm a Debian 13 Trixie
Il tuo server, che sia un dedicato Hetzner o un VPS OVH, è il motore silenzioso della tua attività. Giorno dopo giorno, Debian 12 "Bookworm" ha servito le tue applicazioni con la stabilità e l'affidabilità che hanno reso questa distribuzione una leggenda. Ma all'orizzonte si profila un cambiamento: il rilascio di Debian 13 "Trixie". Questo non è un semplice aggiornamento; è un salto generazionale che porta con sé nuove versioni di PHP, Python, Nginx, e migliaia di altri pacchetti, oltre a un kernel più moderno e a fondamentali migliorie di sicurezza.
Debian 12 è stato rilasciato il 10 Giugno 2023, e il supporto di sicurezza (Debian Security Support) terminerà il 10 Giugno 2026. Il supporto alla versione LTS di Debian 12 terminerà il 30 Giugno 2026.
Debian 13 è stato rilasciato il 9 Agosto 2025, e il supporto di sicurezza (Debian Security Support) terminerà il 9 Agosto 2028. Il supporto alla versione LTS di Debian 13 terminerà il 30 Giugno 2030.
E' quindi chiaro che pianificare ed eseguire l'aggiornamento da Debian 12 a Debian 13 garantisce una certa tranquillità relativamente alle future esigenze di sicurezza e compatibilità.
L'idea di eseguire un full-upgrade su un sistema di produzione può generare una certa ansia. Cosa succede se qualcosa va storto? Se un servizio non riparte? Se una configurazione personalizzata smette di funzionare? La tentazione di rimanere sulla versione "vecchia ma sicura" è forte, ma è una strategia che a lungo termine porta a un debito tecnico insostenibile, esponendo il sistema a vulnerabilità non più corrette e precludendo l'accesso a nuove tecnologie.
In qualità di consulente che gestisce infrastrutture critiche, ho sviluppato un approccio metodico per trasformare l'aggiornamento di un sistema operativo da un salto nel buio a un processo controllato e prevedibile. Questa guida non è solo una lista di comandi da copiare e incollare; è una filosofia operativa per affrontare l'aggiornamento a Debian 13 con la professionalità che il tuo business merita.
Stai cercando un Consulente Informatico esperto per la tua Azienda? Nel mio profilo professionale trovi la mia esperienza e le competenze specifiche per aiutarti a risolvere qualsiasi problematica tecnica. Contattami per una consulenza.
Indice dei contenuti
- TLDR: Aggiornare da Debian 12 a Debian 13 (per utenti esperti)
- La pianificazione: il 90% del successo di un aggiornamento
- L'esecuzione: passo dopo passo verso Debian 13
TLDR: Aggiornare da Debian 12 a Debian 13 (per utenti esperti)
Questa sezione è una guida rapida per amministratori di sistema esperti che hanno familiarità con il processo di aggiornamento di Debian e necessitano solo di una checklist dei comandi.
Attenzione: Questa procedura è una sintesi. Si raccomanda di leggere la guida completa e le note di rilascio ufficiali prima di procedere su un sistema di produzione. Un backup completo è obbligatorio.
Preparazione e pulizia:
# Controlla lo spazio libero (consigliati >5GB) df -h # Pulisci il sistema e aggiorna Bookworm all'ultima versione sudo apt clean && sudo apt autoremove sudo apt update && sudo apt full-upgrade # Riavvia se è stato installato un nuovo kernel # sudo rebootModifica dei repository:
# Sostituisci "bookworm" con "trixie" sudo sed -i 's/bookworm/trixie/g' /etc/apt/sources.list sudo find /etc/apt/sources.list.d -type f -exec sed -i 's/bookworm/trixie/g' {} \;Esecuzione dell'aggiornamento (consigliato in
screenotmux)In questo step, bisogna dedurre se il sistema sta utilizzando
mdadmper la gestione dei dischi. In questo caso, bisognerà seguire un approccio specifico. Per verificare se il sistema utilizzamdadm, puoi eseguire il seguente comando:sudo mdadm --detail --scanSistemi SENZA
mdadm# Aggiorna il sistema a Trixie sudo apt update sudo apt full-upgradeSistemi CON
mdadmSe usi il pacchettomdadm, a partire dal 22 Agosto 2025, è consigliato un workaround per evitare un problema dovemdadmviene aggiornato prima disystemde mostra un errore indicando di non trovaresystemd. Un bug report traccia il problema. La soluzione è bloccaremdadm, aggiornare Debian, e poi sbloccare e aggiornaremdadm.# Blocca temporaneamente mdadm sudo apt-mark hold mdadm # Aggiorna il sistema a Trixie sudo apt update && sudo apt full-upgrade # Sblocca e aggiorna mdadm sudo apt-mark unhold mdadm sudo apt update && sudo apt full-upgradeFinalizzazione:
# Riavvia nel nuovo sistema sudo reboot # Pulisci i pacchetti obsoleti sudo apt autoremove && sudo apt clean # Opzionale: modernizza il formato dei file sources.list sudo apt modernize-sources
La pianificazione: il 90% del successo di un aggiornamento
Un aggiornamento di sistema riuscito non si basa sulla fortuna, ma su una preparazione meticolosa. Prima di digitare il primo comando, è fondamentale eseguire una serie di controlli preliminari per assicurarsi che il terreno sia pronto.
1. Backup completo e snapshot
Questo punto non è negoziabile. Prima di qualsiasi modifica, devi avere un piano di ripristino. Se il tuo provider lo consente (come fanno Hetzner e OVH), crea uno snapshot completo del server. È un'operazione che richiede pochi minuti e rappresenta la tua rete di sicurezza definitiva: se qualcosa dovesse andare catastroficamente storto, potrai ripristinare lo stato esatto del server in un attimo. Oltre allo snapshot, un backup dei dati applicativi (database, file, etc.) è sempre una buona pratica.
# Esempio di comando per creare un backup di un database MySQL
mysqldump -u [username] -p[password] [database_name] > /path/to/backup.sql
# Esempio di comando per creare un tarball di una directory
tar -czvf /path/to/backup/directory.tar.gz /path/to/directory
# Esempio di comando per inviare un file ad un altro server (previa configurazione di ~/.ssh/config)
scp /path/to/file user@remote:/path/to/destination2. Controllo dello spazio su disco
Un aggiornamento di versione scaricherà centinaia di nuovi pacchetti. Assicurati di avere spazio a sufficienza.
df -hUna buona regola è avere almeno 5 GB di spazio libero sulla partizione di root (/). Se lo spazio è risicato, puoi liberarne un po' con i comandi di pulizia di apt:
sudo apt clean
sudo apt autoremoveIn aggiunta, puoi sempre liberare spazio andando a ripulire la directory dei log - ma ricordando di fare molta attenzione a non rimuovere log importanti.
Per farlo, puoi utilizzare il comando find per cercare e rimuovere i file di log più vecchi di un certo numero di giorni. Ad esempio, per rimuovere i log più vecchi di 30 giorni:
find /var/log -type f -name "*.log" -mtime +30 -exec rm -f {} \;3. Aggiornamento completo del sistema attuale
L'aggiornamento a Debian 13 Trixie è supportato ufficialmente solo partendo da un sistema Bookworm completamente aggiornato. Esegui quindi un ultimo ciclo di update:
sudo apt update && sudo apt full-upgradeSe questo comando dovesse installare un nuovo kernel, è fondamentale riavviare il sistema per assicurarsi che stia girando con la versione più recente prima di procedere.
Per verificare se il comando precedente ha aggiornato il kernel, bisogna guardare il log di apt e cercare la voce relativa al pacchetto del kernel. Nel caso di aggiornamento del kernel, apt manderà in output strighe simili:
linux-image-amd64:amd64linux-headers-amd64:amd64linux-image-6.12.38+deb12-amd64:amd64(la versione 6.12.38+deb12 è un esempio, potrebbe variare)linux-headers-6.12.38+deb12-amd64:amd64(la versione 6.12.38+deb12 è un esempio, potrebbe variare)
In caso di aggiornamento del kernel, è fondamentale riavviare il sistema per assicurarsi che stia girando con la versione più recente prima di procedere.
sudo reboot4. Identificazione di repository di terze parti usati nel sistema
I repository ufficiali di Debian verranno aggiornati automaticamente, ma cosa succede con quelli che hai aggiunto tu (es. per Docker, Node.js, etc.)? Di norma, i repository aggiuntivi vengono creati dentro /etc/apt/sources.list.d. In una situazione "standard", è quindi sufficiente controllare i file in quella directory per identificare eventuali repository di terze parti:
ls /etc/apt/sources.list.dNel caso in cui esistano dei repository di terze parti nel tuo sistema, dovrai obbligatoriamente verificare che questi repository offrano già una versione compatibile con Trixie. In caso contrario, dovrai disabilitarli temporaneamente e gestirli dopo l'aggiornamento.
L'esecuzione: passo dopo passo verso Debian 13
Con la preparazione completata, possiamo iniziare il processo di aggiornamento vero e proprio. Per evitare che una disconnessione della rete interrompa l'operazione a metà, è caldamente consigliato eseguire l'intera procedura all'interno di una sessione screen o tmux.
# Installa screen se non è presente e avvia una nuova sessione
sudo apt install -y screen && screen1.Modifica delle fonti software (sources.list)
Il cuore dell'operazione consiste nel dire ad apt di guardare ai repository di Trixie invece che a quelli di Bookworm.
# Sostituisce tutte le occorrenze di 'bookworm' con 'trixie' nel file principale
sudo sed -i 's/bookworm/trixie/g' /etc/apt/sources.list
# Fa lo stesso per tutti i file nei repository di terze parti
sudo find /etc/apt/sources.list.d -type f -exec sed -i 's/bookworm/trixie/g' {} \;Nota importante: A partire da Debian 12, i firmware non liberi sono stati spostati in un componente separato chiamato
non-free-firmware. Se usavinon-free, assicurati che le tue fonti includano sianon-freechenon-free-firmware. Per farlo, è sufficiente lanciarecat /etc/apt/sources.liste verificare che le righe relative anon-freesiano presenti. Se non lo sono, aggiungile manualmente.
2. Aggiornamento del sistema
Ora è il momento di sincronizzare le fonti e lanciare l'aggiornamento.
sudo apt update
sudo apt full-upgradeQuesto processo richiederà tempo. apt ti mostrerà un riepilogo dei pacchetti che verranno installati, aggiornati e rimossi. Leggilo attentamente. Durante l'installazione, ti verranno poste alcune domande:
- Restart services during package upgrades without asking? Rispondi Yes. Permette ai pacchetti di riavviare i servizi (come Nginx o il database) in autonomia.
- Keep your currently-installed version of a configuration file? In caso di dubbio, la scelta più sicura è mantenere la versione attuale (
keep the local version currently installed). Potrai rivedere le differenze in un secondo momento.
3. Gestione di casi particolari come mdadm
A volte, possono verificarsi problemi specifici con alcuni pacchetti. Ad esempio, è stato segnalato un bug temporaneo con mdadm (il gestore di RAID software) dove l'aggiornamento fallisce se eseguito prima di altri componenti di sistema. Se usi mdadm, una soluzione consiste nel "bloccare" temporaneamente l'aggiornamento del pacchetto, eseguire l'upgrade principale e poi aggiornarlo separatamente.
Per verificare se il sistema utilizza mdadm, puoi eseguire il seguente comando:
sudo mdadm --detail --scanAgisci quindi di conseguenza, usando l'approccio specifico.
# Se usi mdadm, bloccalo temporaneamente
sudo apt-mark hold mdadm
# Esegui l'aggiornamento principale
sudo apt update && sudo apt full-upgrade
# Sblocca e aggiorna mdadm
sudo apt-mark unhold mdadm
sudo apt update && sudo apt full-upgrade4. Riavvio e pulizia finale
Una volta che l'aggiornamento è completato senza errori, è il momento del riavvio finale per avviare il nuovo kernel e il sistema Trixie.
sudo rebootDopo il riavvio, verifica che tutto funzioni come previsto. Infine, esegui una pulizia per rimuovere i vecchi pacchetti e le dipendenze non più necessarie.
sudo apt autoremove && sudo apt clean5. (Opzionale) Modernizzare le fonti software
Debian 13 incoraggia l'uso del nuovo formato deb822 per i file delle fonti, più leggibile e robusto. Puoi convertire la tua configurazione con un semplice comando:
sudo apt modernize-sourcesQuesto creerà nuovi file in sources.list.d e lascerà il vecchio sources.list vuoto.
Congratulazioni! Hai appena traghettato il tuo server nel futuro, garantendoti anni di supporto, sicurezza e accesso alle tecnologie più recenti. Affrontare un'operazione come questa con un piano e una metodologia precisa è ciò che distingue un approccio amatoriale da uno professionale. È un investimento sulla stabilità e la longevità della tua infrastruttura.
Fonte: https://gist.github.com/yorickdowne/3cecc7b424ce241b173510e36754af47