
Mettre à jour Debian 12 vers debian 13 n’est généralement pas compliquée si vous avez déjà une installation de debian 12 propre et entièrement maîtrisée.
Dans ce mémo (que je consulte moi-même), nous allons voir les principales étapes de migration. (Ceci est un résumé du mémo complet Debian)
Il se peut que des services ne se relancent pas car leur configuration aura changé ou sera devenu incompatible et nécessitera une petite correction.
Prévoyez donc de le faire à un moment calme.
Si vous souhaitez maximiser la stabilité un peu plus, je vous conseille d’attendre la version 13.1 qui sortira peu de temps après la version 13.0, un samedi.
Toutes les commandes sont lancées en tant que root au travers de la console KVM du serveur ou à travers l’accès SSH. Ne faites pas de sudo ridicule, passez root.
Pourquoi migrer vers Debian 13 (sans précipitation) ?
Vous utilisez un serveur Debian pour héberger WordPress par exemple.
Celui-ci nécessite PHP mais est conçu pour la version de PHP la plus utilisée du moment. Vous devez donc suivre les versions pour ne pas être bloqué dans les mises à jour, un jour ou l’autre.
Debian apporte une amélioration de performances (nouveau scheduler, http/3,…)
Vous verrez de plus en plus de documentations en ligne faisant référence à Debian 13 et de moins en moins à Debian 12. Donc pour pouvoir s’y fier et être en phase, vous devez suivre. Je dirais aussi la même chose pour ceux qui tentent de résister à utiliser systemd à la place de initrd.
Quelles (mauvaises) surprises vous attendent ?
Abracadabra !
- Disparation des commandes last, lastb et lastlog ! (Si vous les utilisiez dans un script par exemple).
- Arrêt critique de votre serveur MariaDB et redémarrage impossible : vérifier que votre serveur MariaDB démarre correctement sans erreur avant de mettre à jour Debian car la réparation est impossible si la version de MariaDB change !
- Si vous avez des dépôts externes (non officiels), sachez qu’ils seront probablement désactivés et vos paquets spécifiques peuvent être downgradés ou désinstallés.
1. Sauvegardes
Une mise à jour peut mal se passer, détruire des données, rendre le serveur non bootable.
Je sauvegarde les serveurs via BackupPC, RCLONE et snapshot (oui, les 3 systèmes). Les bases de données doivent sauvegardées par export en SQL *avant* toute sauvegarde de fichier.
Vérifiez que votre système est bien sauvegardé.
Que les sauvegardes sont distantes.
Faites un snapshot en plus si c’est une machine virtuelle.
Prévoyez du temps en cas de problème pour réparer.
Soyez capable de faire un redémarrage en mode rescue.
2. Mise à jour simple de votre Debian 12
Normalement, votre serveur est déjà à jour car vous êtes consciencieux sinon il faut absolument être à jour avant :
apt update
apt upgrade
3. Supprimez les paquets non Debian
Si vous avez installé des paquets non officiels, il faut les enlever. Vous les remettrez plus tard (s’ils fonctionnent encore).
Pour trouver ces paquets, utilisez ces commandes :
apt list '?narrow(?installed, ?not(?origin(Debian)))'
apt-forktracer | sort
4. Supprimez les résidus de fichiers de configuration
find /etc -name '*.dpkg-*' -o -name '*.ucf-*' -o -name '*.merge-error'
5. Désactiver l'épinglage APT (pinning)
Vérifiez le fichier ou le répertoire /etc/apt/preferences ou /etc/apt/preferences.d
Ils servent à épingler des versions paquets. Vérifiez ce qui doit être fait mais il probable qu’il faille désactiver ces fichiers.
6. Vérification de l'état des paquets
On ne doit avoir aucun paquet dans un état d’installation non terminé ou autre :
dpkg --audit
7. Mettre à jour les fichiers source-list
Dans les fichiers /etc/apt/sources.list ou /etc/apt/sources.list.d/*, remplacez bookworm par trixie et normalement vous obtenez :
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://security.debian.org trixie-security main contrib non-free non-free-firmware
IMPORTANT : le nom à mettre est deb.debian.org qui est un nom qui va pointer automatiquement vers le dépôt le plus proche.
8. Mise à jour de la liste des paquets disponibles
apt update
9. Contrôle de l'espace disque avant mise à jour
apt -o APT::Get::Trivial-Only=true full-upgrade
[ ... ]
XXX upgraded, XXX newly installed, XXX to remove and XXX not upgraded.
Need to get xx.xMB of archives.
After this operation, AAAMB of additional disk space will be used.
S’il n’y a pas assez de place, il va s’afficher ce message :
E: You don't have enough free space in /var/cache/apt/archives/.
10. Nettoyage
apt clean
apt --purge autoremove
11. Mise à jour minimum
Ce processus permet de mettre à jour les paquets du système qui n’ajoutent pas de nouvelles dépendances sur de nouveaux paquets ou qui n’en enlèvent pas :
apt -o Apt::Get::Assume-Yes=true -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade --without-new-pkgs
12. Mise à jour finale
apt -o Apt::Get::Assume-Yes=true -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" full-upgrade
apt --purge autoremove
Si tout s’est bien passé, il faut redémarrer le système.
En cas de problème, analysez la situation avant de faire un reboot.