Cette mise à jour est similaire à ce qui a pu être fait précédemment.
Je vais essayer d’expliquer brièvement les étapes à suivre.
- D’abord s’assurer de la version actuelle de Debian avec la commande suivante :
lsb_release -a
- Il est recommandé d’utiliser le programme
/usr/bin/scriptpour enregistrer une transcription de la session de mise à niveau. Ainsi, quand un problème survient, on a un enregistrement de ce qui s’est passé. Pour démarrer un enregistrement, taper :script -t 2>~/upgrade-debian.time -a ~/upgrade-debian.script
- On va effectuer une mise à jour des paquets :
apt-get update && apt-get upgrade
- On fait une sauvegarde de plusieurs éléments dans le répertoire
/root/svg_special:mkdir /root/svg_special; cp -R /var/lib/dpkg /root/svg_special/; cp /var/lib/apt/extended_states /root/svg_special/; dpkg --get-selections "*" > /root/svg_special/dpkg_get_selection; cp -R /etc /root/svg_special/etc
- Si vous utilisez MariaDB, il peut être bien de faire une sauvegarde complète des bases de données :
/usr/bin/mariadb-dump --all-databases --single-transaction -u root -p | gzip > /root/svg_special/backup-databases.sql.gz
- Créez un tar.gz du répertoire de la sauvegarde, puis le télécharger dans un lieu sûr :
tar -czf /root/backup-pre-debian13.tar.gz /root/svg_special
- Ensuite il est conseillé d’utiliser
screenpour pouvoir se reconnecter (avecscreen -r) en cas de déconnexion :screen
À noter que si vous n’arrivez pas à scroller dans une session “screen”, il faut alors utiliser la commande
CTRL+A, ESCpour cela. Et pour arrêterscreenon faitCTRL+A, k - On peut lancer la commande
dpkg --auditpour s’assurer que tout est bon avant la migration. On peut également taperdpkg --get-selections "*" | moreet vérifier qu’aucun paquet n’est en on hold - On peut supprimer les résidus de fichiers de configuration avec la commande :
find /etc -name '*.dpkg-*' -o -name '*.ucf-*' -o -name '*.merge-error' -delete
- Faire un tour dans
/etc/apt/afin de voir si des paquets ne sont pas marqués “bookworm” ou s’ils proviennent de sources tiers. Par exemple/etc/apt/sources.list.d/php.listqui pourrait indiquerdeb [signed-by=/etc/apt/keyrings/sury-php.gpg] https://packages.sury.org/php/ bookworm main– pour ce type de paquet ne provenant pas de Debian, on peut commenter la liste avec # le temps de l’upgrade. Rien ne sera désinstallé, et après l’upgrade il faudra s’occuper de ces sources tierces. - Maintenant il faut remplacer tous les “bookworm” de
/etc/apt/sources.listpar des “trixie”.
On pourra par exemple utiliser la commande suivante :sed -i 's/bookworm/trixie/g' /etc/apt/sources.list
- On passe aux choses sérieuses, en commençant par mettre à jour les listes des paquets :
apt update
- On va vérifier qu’on a la place suffisante (un message explicite apparait sinon) :
apt -o APT::Get::Trivial-Only=true full-upgrade
- On va maintenant faire une mise à jour minimale :
apt upgrade --without-new-pkgs
- Et à partir de là le système va vous questionner… en général choisir l’option par défaut si vous ne savez pas quoi répondre
- Puis on termine avec
apt full-upgrade
Cette dernière étape va durer un certain temps. Une fois terminé, vous pouvez redémarrer le serveur pour s’assurer que tout va bien.
Réactiver les sources tierces
On va reprendre un par un les fichiers dans /etc/apt/sources.list.d afin de les décommenter. On remplacera “bookworm” par “trixie”, puis on fait apt update && apt upgrade.
MariaDB
On va vérifier la version de MariaDB qu’on a avec mariadb --version. Debian aura installé la version la plus récente qui est disponible dans ses dépôts, mais on peut vouloir utiliser le fichier /etc/apt/sources.list.d/mariadb.sources afin d’avoir des mises à jour plus rapides. Plus d’explications sont disponibles sur le site de MariaDB.
PHP
Il est bien de vérifier que la version actuelle de PHP est correctement utilisée par Apache et qu’elle correspond à ce qu’on veut. Pour cela on vérifie la version avec:
php -v
Ensuite on regarde les versions de PHP disponibles dans les modules d’Apache :
ls -l /etc/apache2/mods-available/php*
Et on regarde celle activée :
ls -l /etc/apache2/mods-enabled/php*
Si la version souhaitée est manquante dans les modules, alors on l’installe, par exemple pour la 8.4 :
apt-get install php8.4 php8.4-mysql
On s’assure ensuite de bien activer la bonne version, par exemple en passant de la v7.4 à v8.4 :
a2dismod php7.4 a2enmod php8.4
Et on redémarre Apache :
systemctl restart apache2
Pour finir
Une fois les erreurs corrigées, on va nettoyer tous les paquets avec :
apt-get autoremove