Mettre à jour Debian 11 vers Debian 12 (bookworm)
Mettre à jour Debian 11 vers Debian 12 n'est généralement pas compliqué si vous avez déjà une installation de Debian 11 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.
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.
1. Quelles nouveautés de Debian 12 sont utiles à savoir pour un VPS ?
Section intitulée « 1. Quelles nouveautés de Debian 12 sont utiles à savoir pour un VPS ? »Voici la liste des paquets importants pour un VPS qui seront mis à jour s'ils sont installés :
| Paquet | Debian 11 | Debian 12 |
|---|---|---|
| Apache | 2.4.54 | 2.4.57 |
| Dovecot | 2.3.13 | 2.3.19 |
| Exim | 4.94 | 4.96 |
| GnuPG | 2.2.27 | 2.2.40 |
| libc | 2.31 | 2.36 |
| Linux | 5.10 | 6.1 |
| MariaDB | 10.5 | 10.11 |
| Nginx | 1.18 | 1.22 |
| OpenLDAP | 2.4.57 | 2.5.13 |
| OpenSSH | 8.4p1 | 9.2p1 |
| Perl | 5.32 | 5.36 |
| PHP | 7.4 | 8.2 |
| Postfix | 3.5 | 3.7 |
| PostgreSQL | 13 | 15 |
| Python 3 | 3.9.2 | 3.11.2 |
| systemd | 247 | 252 |
1.2/ Remplacement du paquet NTP par NTPsec
Section intitulée « 1.2/ Remplacement du paquet NTP par NTPsec »NTP est un protocole qui sert à synchroniser l'horloge du serveur.
Si vous avez déjà le paquet ntp, il sera remplacé par ntpsec, un dérivé sécurisé du paquet ntp.
Si vous n'avez pas de démon ntp ou équivalent, c'est le paquet systemd-timesyncd qui sera installé.
1.3/ Remplacement de Puppet 5 par Puppet 7
Section intitulée « 1.3/ Remplacement de Puppet 5 par Puppet 7 »Attention : ne mettez pas à jour les serveurs qui ont l'agent Puppet en version inférieure à 7 avant d'avoir mis à jour le serveur qui héberge le puppetmaster.
Il faut toujours mettre à jour le puppetmaster avant tous les autres serveurs.
1.4/ Remplacement (non forcé) de rsyslog par systemd-journald
Section intitulée « 1.4/ Remplacement (non forcé) de rsyslog par systemd-journald »C'est la partie désagréable pour les anciens.
Il est temps d'envisager de supprimer rsyslog au profit de systemd-journald et ses journaux binaires, non lisibles par beaucoup d'outils que vous utilisez sûrement.
Après la migration vers Debian 12, vous pouvez supprimer rsyslog avec ces commandes :
apt-mark auto rsyslogapt autoremovePour lire les journaux binaires, au lieu d'utiliser la commande tail (petite larme aux yeux), il faudra faire :
journalctl -efSi vous gardez tout de même rsyslog (au moins pendant un temps), tous les logs seront écrits par défaut dans un seul fichier /var/log/syslog (les fichiers alternatifs peuvent être supprimés).
1.5/ Python3 : changement pour l'installation des paquets externes
Section intitulée « 1.5/ Python3 : changement pour l'installation des paquets externes »Par défaut, il n'est pas autorisé d'installer des paquets Python non empaquetés par Debian.
Il est possible de passer outre cette interdiction, mais ce n'est pas conseillé.
Désormais, les paquets externes doivent être installés dans des environnements Python isolés, à l'aide de pipx ou d'un environnement virtuel (python -m venv).
2. Comment mettre à jour Debian 11 vers 12 ?
Section intitulée « 2. Comment mettre à jour Debian 11 vers 12 ? »Avant de mettre à jour, votre serveur doit être sauvegardé à distance, dans un autre datacenter. Et je conseille d'avoir aussi une copie chez un hébergeur indépendant et une copie chez soi.
Une mise à jour peut mal se passer, détruire des données, rendre le serveur non bootable : les bases de données doivent être sauvegardées par export SQL avant toute sauvegarde de fichier, et faites un snapshot en plus si c'est une machine virtuelle. Prévoyez du temps en cas de problème pour réparer, et soyez capable de faire un redémarrage en mode rescue.
Normalement, votre serveur est déjà à jour car vous êtes consciencieux, sinon il faut absolument être à jour avant :
apt updateapt upgradereboot # si nécessaire2.1/ Mettre à jour les fichiers source-list
Section intitulée « 2.1/ Mettre à jour les fichiers source-list »Une nouvelle section de dépôt fait son apparition. Sur un serveur, en théorie, ça ne sera pas utile mais c'est possible de la mettre : non-free-firmware.
Dans les fichiers /etc/apt/sources.list ou /etc/apt/sources.list.d/*, remplacez bullseye par bookworm :
deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmwaredeb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmwaredeb http://security.debian.org bookworm-security main contrib non-free non-free-firmwareIMPORTANT : le nom à mettre est deb.debian.org qui va pointer automatiquement vers le dépôt le plus proche.
Ou se placer dans le répertoire et remplacer bullseye par bookworm en une seule commande :
sed -i 's/bullseye/bookworm/g' *.list2.2/ Mise à jour de la liste des paquets disponibles
Section intitulée « 2.2/ Mise à jour de la liste des paquets disponibles »apt update2.3/ Mise à jour minimum
Section intitulée « 2.3/ Mise à jour minimum »Ce processus permet de mettre à jour les paquets du système qui n'ajoute pas de nouvelles dépendances sur de nouveaux paquets ou qui n'en enlève pas :
apt -o Apt::Get::Assume-Yes=true -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade --without-new-pkgs2.4/ Vérification de l'espace disque avant mise à jour complète
Section intitulée « 2.4/ Vérification de l'espace disque avant mise à jour complète »Je conseille de nettoyer l'espace disque et de vérifier l'espace disponible avant la mise à jour complète :
apt cleanapt --purge autoremoveapt -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/.2.5/ Mise à jour finale
Section intitulée « 2.5/ Mise à jour finale »apt -o Apt::Get::Assume-Yes=true -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" full-upgradeapt --purge autoremoveSi tout s'est bien passé :
rebootEn cas de problème, analysez la situation avant de faire un reboot. Si vous préférez ne pas gérer ça vous-même, demandez une prestation.
