Introduzione
In questa breve guida vediamo come effettuare l'aggiornamento da Debian 11 al nuovo Debian 12, senza dover reinstallare tutto.Che si tratti di una vps o del vostro personal computer, l'operazione è molto semplice, basta prestare attenzione a qualche passaggio. Come al solito, consigliamo di effettuare un backup nel caso l'upgrade non dovesse andare a buon fine per qualsiasi motivo.
Ricordo che durante l'aggiornamento ci saranno dei minuti di down dovuti all'aggiornamento dei vari pacchetti (e la loro configurazione). I servizi presenti su una VPS non saranno disponibili fino alla conclusione dell'upgrade.
Aggiornamento
Prima di tutto, entriamo come root digitandosu -
oppure sudo su -
Accertiamoci che sia in uso Debian 11. Digitiamo
Bash:
lsb_release -d
Aggiorniamo i pacchetti al momento installati con i comandi classici
Bash:
sudo apt update
Bash:
sudo apt upgrade
Bash:
sudo apt dist-upgrade
Rimuoviamo ora gli eventuali pacchetti pacchetti non utilizzati con
Bash:
sudo apt --purge autoremove
Prima di aggiornare, verifichiamo la presenza di eventuali pacchetti obsoleti
Bash:
apt list '~o'
Bash:
sudo apt purge '~o'
Una volta fatto riavviamo
Bash:
sudo reboot
ATTENZIONE: Da questo momento inizia il vero e proprio aggiornamento, se avete la possibilità di eseguire un backup (o creare una snapshot) è il momento giusto per farlo!
Aggiorniamo le repository in modo che usino quelle di Debian 12 Bookworm
Bash:
sudo sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list
Bash:
sudo sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list.d/*
Debian 12 ha spostato tutti i non-free firmware (ad esempio firmware-amd-graphics) in un archivio separato chiamato "non-free-firmware". Pertanto dobbiamo aggiungere tale dicitura nelle repository
Bash:
sudo sed -i 's/non-free/non-free non-free-firmware/g' /etc/apt/sources.list
Bash:
sudo sed -i 's/non-free/non-free non-free-firmware/g' /etc/apt/sources.list.d/*
Prima di procedere, verifichiamo che le sostituzioni siano avvenute correttamente.
Controlliamo il contenuto del file sources.list con
Bash:
cat /etc/apt/sources.list
Codice:
deb http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware
deb http://deb.debian.org/debian/ bookworm-updates non-free non-free-firmware contrib main
deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
Se così non fosse, possiamo modificare manualmente il file sources.list con l'editor che preferiamo, ad esempio nano digitando
Bash:
nano /etc/apt/sources.list
Stesso controllo va fatto all'interno delle repository da noi aggiunte, presenti nella cartella /etc/apt/sources.list.d
Procediamo con l'aggiornamento digitando
Bash:
sudo apt update
Bash:
sudo apt upgrade --without-new-pkgs
Questo comando eseguirà un soft-upgrade, come consigliato ufficialmente, prima di procedere all'upgrade vero e proprio. Durante questa fase verranno mostrati eventuali modifiche effettuate ai vari file di configurazione. Il consiglio è di verificare le modifiche che verranno effettuate e nel caso correggerle secondo le nostre preferenze.
Inoltre verrà richiesto se vogliamo riavviare i servizi, rispondiamo di si.
Finito il processo, eseguiamo l'upgrade finale con
Bash:
sudo apt full-upgrade
A operazione effettuata, riavviamo la macchina
Bash:
sudo reboot
L'aggiornamento è concluso! Possiamo verificare la versione del sistema operativo con
Bash:
lsb_release -a
Controlli aggiuntivi
In base ai servizi installati, dovremmo effettuare altre modifiche, ad esempio se usiamo php, apache, nginx.Debian 12 usa come versione PHP 8.2 di base, dobbiamo quindi modificarla se in precedenza usavamo altre versioni.
Assicuriamoci intanto che i pacchetti php siano installati, digitando (ESEMPIO)
Bash:
sudo apt-get install php8.2 php8.2-cli php8.2-cgi php8.2-fpm php8.2-gd php8.2-mysql php8.2-imap php8.2-curl php8.2-intl php8.2-pspell php8.2-sqlite3 php8.2-tidy php8.2-xsl php8.2-zip php8.2-mbstring php8.2-soap php8.2-opcache libonig5 php8.2-common php8.2-readline php8.2-xml
Dobbiamo ora renderla la versione default. Per farlo digitiamo i seguenti comandi (uno per linea) scegliendo quando richiesto la versione 8.2
Bash:
update-alternatives --config php
Bash:
update-alternatives --config php-cgi
Bash:
update-alternatives --config php-fpm.sock
Se usiamo apache2, dobbiamo disabilitare la versione php 7.4 come default handler e inserire la 8.2.
Digitiamo questi comandi (uno per linea)
Bash:
a2disconf php7.4-fpm
a2enconf php8.2-fpm
systemctl restart apache2
Per quanto riguarda nginx, semplicemente dobbiamo aggiornare i nostri eventuali siti web in /etc/nginx/sites-available/
Siamo giunti alla fine, spero questa guida sia stata utile. Come sempre, fateci sapere eventuali dubbi o domande.