Mise à jour Debian 12 vers 13

Dans un tutoriel précédent, j’ai expliqué comment installer Debian 13 à partir de zéro.
Il existe toutefois une autre approche : mettre à jour Debian 12 vers Debian 13.
Bien sûr, cette méthode comporte certains risques, surtout si vous avez beaucoup de programmes et de services installés. Il est donc recommandé de faire la mise à jour uniquement sur des systèmes stables.
Si vous travaillez sur un serveur en production, il est essentiel de faire au minimum une sauvegarde complète, et idéalement de tester la procédure dans une machine virtuelle avant de l’appliquer au serveur, afin d’éviter de mauvaises surprises.
Pour ma démonstration, j’utilise une VM Debian 12 installée sur Proxmox 8.

1. Préparation

Assurez-vous d’avoir l’accès root :

sudo -i

Mettez Debian 12 à jour vers son état le plus récent :

apt update
apt upgrade -y
apt full-upgrade -y

Supprimez les paquets devenus inutiles :

apt --purge autoremove -y
apt clean

Vérifiez ensuite la version installée :

lsb_release -a

Ça doit indiquer : Debian GNU/Linux 12 (bookworm).

 

2. Sauvegarde avant la mise à niveau

Enregistrez la liste des paquets installés :

dpkg --get-selections > /root/packages.list

Faites une copie de sauvegarde des fichiers de configuration :

tar -czvf /root/etc-backup-$(date +%F).tar.gz /etc

Si c’est un serveur, effectuez un snapshot ou une sauvegarde complète.

3. Passage aux dépôts de Debian 13

Ouvrez le fichier sources.list :

nano /etc/apt/sources.list

Remplacez toutes les occurrences de bookworm par trixie.

Par exemple :
Ancien contenu :

deb http://deb.debian.org/debian/ bookworm main non-free-firmware
deb-src http://deb.debian.org/debian/ bookworm main non-free-firmware

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

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

 

Nouveau contenu proposé:

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

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

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

Assurez-vous qu’il ne reste plus de références à bookworm :

grep -r bookworm /etc/apt/

Si le résultat montre uniquement des lignes commentées (précédées du caractère #), comme dans mon cas:

Ce n’est pas un problème : ces lignes sont inactives.
Vous pouvez les laisser telles quelles ou bien les mettre à jour aussi pour garder le fichier propre et cohérent.

4. Mise à jour du système

Mettez à jour la liste des paquets :

apt update

Effectuez une mise à jour minimale :

apt upgrade --without-new-pkgs -y

Cette étape installe seulement les mises à jour qui ne nécessitent pas de nouvelles dépendances. Cela réduit le risque de conflits au début de la transition.
Pendant ce processus, le système peut afficher un message concernant le redémarrage automatique de certains services (par exemple sshd, cron, apache2).
Il est recommandé de répondre Yes afin que ces redémarrages se fassent automatiquement, sans avoir à confirmer chaque fois.

Vérifiez que tout est en ordre avant de lancer la mise à niveau complète :

apt -f install
dpkg --audit

apt -f install corrige les dépendances brisées s’il y en a.

dpkg –audit affiche les paquets en état « partiellement installé ». Si la sortie est vide, tout est correct.

Dans mon cas :
apt -f install n’a rien trouvé à corriger → aucune dépendance brisée.
dpkg –audit n’a rien affiché → aucun paquet « partiellement installé » ou « brisé ».

Effectuez la mise à jour complète :

apt full-upgrade -y

À cette étape, le système va installer les nouveaux paquets nécessaires, supprimer ceux qui sont obsolètes et finaliser la mise à niveau vers Debian 13.
Pendant le processus, il se peut que des questions apparaissent concernant des fichiers dans /etc/.

– Si vous n’avez pas modifié le fichier → acceptez la nouvelle version.

– Si le fichier a été fortement personnalisé → conservez votre propre version.

 

5. Redémarrage

Après la mise à niveau, redémarrez le système :

reboot

6. Vérification de la version

Une fois le redémarrage terminé, vérifiez la version installée :

lsb_release -a

Le résultat doit indiquer :

Distributor ID: Debian
Description: Debian GNU/Linux 13 (trixie)

 

7. Nettoyage après la mise à niveau

Supprimez les paquets devenus inutiles :

apt --purge autoremove -y

Vérifiez s’il reste des paquets brisés :

dpkg -l | grep ^..r

Mettez à jour l’initramfs et GRUB pour vous assurer que tout est bien pris en compte :

sudo update-initramfs -u -k all
sudo update-grub

Vous avez maintenant Debian 13 Trixie avec un noyau et des paquets mis à jour.

À garder en tête pendant la mise à jour

•Sauvegardes et tests : si c’est un serveur en production, ne partez jamais à l’aveugle. Faites une sauvegarde complète et, si possible, testez la procédure dans une VM avant de lancer la vraie mise à jour.
•Dépôts externes : vérifiez ce qu’il y a dans /etc/apt/sources.list.d/. Les dépôts tiers (backports, pilotes propriétaires, PPA, etc.) ne suivent pas toujours immédiatement Debian 13. S’ils restent actifs, ils peuvent bloquer l’upgrade.
•Pilotes propriétaires : pour des éléments comme NVIDIA, VirtualBox ou d’autres modules liés au noyau, assurez-vous qu’ils existent bien pour Debian 13 avant de redémarrer.
•Fichiers de config : Debian garde souvent des copies quand un fichier de configuration est mis à jour (par exemple .dpkg-old ou .dpkg-dist). Si un service refuse de démarrer, comparez vos fichiers dans /etc/ pour identifier les différences.
•Accès SSH : si vous mettez à jour un serveur à distance, prévoyez une roue de secours (console Proxmox, IPMI, KVM-IP, etc.). Si sshd plante, c’est votre filet de sécurité.

Bonne chance!