Debian: Come aggiornare da Debian 10 a Debian 13

Ho preso in gestione alcune macchine Debian non più aggiornate da anni; mi sono accorto che erano rimaste ferme a Debian 10 ed era arrivato il momento di aggiornarle.

Non si può saltare dalla 10 alla 13 direttamente

Debian non supporta l’aggiornamento diretto da una release vecchia a una recente saltando le versioni intermedie. Ogni salto di release ha la sua procedura documentata, i suoi repository e — soprattutto — le sue trappole. Il percorso corretto da Debian 10 (Buster) a Debian 13 (Trixie) passa quindi per tutte le tappe intermedie:

Buster → Bullseye → Bookworm → Trixie

Tre upgrade a catena, sì, ma nessuno di questi è complicato se si segue l’ordine giusto. In questa guida riporto la procedura completa che ho applicato, compresa la gestione dei repository archiviati e delle chiavi GPG legacy.

Prima di partire: le precauzioni (non saltatele)

Qualunque sia la tappa, alcune regole valgono sempre:

  • Backup completo prima di ogni salto: al minimo /etc, /home, l’elenco dei pacchetti (dpkg --get-selections > pacchetti.txt) e, se possibile, uno snapshot o un’immagine della macchina.
  • Spazio su disco: verificatelo con df -h, con attenzione a /boot che si riempie facilmente con vecchi kernel.
  • Repository di terze parti: i file in /etc/apt/sources.list.d/ (GitLab, Docker, NodeSource, PostgreSQL…) sono la causa numero uno di upgrade falliti. Commentateli prima di ogni salto e riattivateli solo dopo aver verificato la compatibilità con la release di destinazione.
  • Console, non SSH cieco: se operate da remoto, usate screen o tmux, così una connessione caduta non vi lascia a metà di un dpkg --configure -a.
  • Una tappa alla volta: riavviate, verificate, solo poi passate alla successiva.

Tappa 1 — Da Buster a Bullseye (Debian 10 → 11)

Il problema: entrambe le release sono archiviate

Debian 10 e Debian 11 non sono più nei repository ufficiali: sono finite su archive.debian.org. I primi comandi quindi puntano lì.

Passaggio 1 — Portare Buster al massimo aggiornamento possibile

apt update && apt upgrade
apt full-upgrade

Passaggio 2 — Aggiornare le sorgenti di Buster verso l’archivio

Sostituire il contenuto di /etc/apt/sources.list con:

deb http://archive.debian.org/debian buster main contrib non-free
deb http://archive.debian.org/debian-security buster/updates main contrib non-free

Poi:

apt update
apt full-upgrade

Passaggio 3 — Impostare le sorgenti di Bullseye

Sovrascrivere /etc/apt/sources.list con:

deb http://archive.debian.org/debian bullseye main contrib non-free

Nota importante: non esiste una riga di sicurezza separata. Gli aggiornamenti di sicurezza di Bullseye (il cui LTS è terminato nell’agosto 2024) non sono più pubblicati — l’archivio contiene l’ultimo stato disponibile. Questa tappa è quella da fare per primo e più in fretta possibile: Bullseye archiviato non riceve più nulla.

Siccome i file Release archiviati hanno scadenze (Valid-Until) ormai passate, disattiviamo il controllo creando /etc/apt/apt.conf.d/99no-check-valid-until con:

Acquire::Check-Valid-Until "false";

Passaggio 4 — L’upgrade vero e proprio

apt update
apt upgrade --without-new-pkgs
apt full-upgrade

Durante il processo APT chiederà come gestire i file di configurazione modificati a mano: di regola conviene tenere la versione attuale e verificare dopo le differenze.

Passaggio 5 — Pulizia e riavvio

apt --purge autoremove
reboot

Verifica:

cat /etc/debian_version   # deve dire 11.x

Tappa 2 — Da Bullseye a Bookworm (Debian 11 → 12)

Da qui in poi le cose migliorano: Bookworm è ancora supportato, quindi si torna ai mirror ufficiali.

Passaggio 1 — Aggiornare Bullseye

apt update
apt full-upgrade

Passaggio 2 — Nuove sorgenti

Sovrascrivere /etc/apt/sources.list con:

deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
deb http://deb.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware

Due accorgimenti:

  • Rimuovere il file di scorciatoia creato nella tappa precedente: rm /etc/apt/apt.conf.d/99no-check-valid-until — con i repository attivi vogliamo che il controllo di validità sia attivo.
  • non-free-firmware è una componente introdotta con Bookworm: aggiungetela se usate firmware (schede Wi-Fi, GPU, ecc.).

Passaggio 3 — Upgrade

apt update
apt upgrade --without-new-pkgs
apt full-upgrade
apt --purge autoremove
reboot

Verifica: /etc/debian_version deve dire 12.x.


Tappa 3 — Da Bookworm a Trixie (Debian 12 → 13)

Procedura identica alla precedente, con sorgenti:

deb http://deb.debian.org/debian trixie main contrib non-free non-free-firmware
deb http://deb.debian.org/debian trixie-updates main contrib non-free non-free-firmware
deb http://deb.debian.org/debian-security trixie-security main contrib non-free non-free-firmware

E poi:

apt update
apt upgrade --without-new-pkgs
apt full-upgrade
apt --purge autoremove
reboot

Trixie porta novità visibili come APT 3 (output più compatto e colorato) e versioni molto più recenti di Python, PHP e GCC: se sul server girano applicazioni con dipendenze specifiche, consultate le note di rilascio ufficiali prima del salto.

Ti interessa acquistare un dominio a prezzi ultraconvenienti? clicca qui

Se hai trovato utili le informazioni su questo blog,
Fai una donazione!
Clicca sul bottone qui sotto o almeno clicca sul banner pubblicitario 🙂



Commenta