Passage de Debian Bullseye à Bookworm
Ayant la manip à faire sur pas mal de serveurs, et comme ce n'est pas une bonne idée d'automatiser les mises à jours majeures (chaque installation a ses particularités), ce qui suit est une recette résumant les consignes de mise à jour officielles de Debian. Et de ma précédente version à propos de Buster, c'est vieux.
- Réaliser un snapshot des VM (et prier sur les hyperviseurs).
- Lancer screen (ça va être long).
- Enregistrer la session.
script -t 2>~/upgrade-bookworm1.time -a ~/upgrade-bookworm1.script
1
sera à incrémenter si on redémarre, relance le script, etc.less -R ~/upgrade-bookworm1.script
permet de relire tranquillement ce qui a défilé.exit
à la fin de la mise à jour (ou si ça redémarre, ça exit aussi !).
- Encore sous Bullseye, réaliser un
apt update && apt upgrade
: plus c'est à jour, moins on a de soucis ensuite.apt autoremove
etapt clean
contribueront aussi à avoir une base propre. - Vérifier s'il y a des vieux fihiers de config obsolètes :
find /etc -name '*.dpkg-*' -o -name '*.ucf-*' -o -name '*.merge-error
'
- Vérifier qu'il n'y a pas des sources alternatives
sudo aptitude search '~i(!~ODebian)'
. dpkg --audit
etapt-mark showhold
pour vérifier qu'il n'y a pas des paquets gelés, avec des soucis, etc.- Installer
gpgv
(ou s'assurer qu'il existe), il est requis pour vérifier les clés signant les publications sur Bookworm :- sudo apt install gpgv
- Modifier
/etc/apt/sources.list
. Voir plus bas. apt update && apt upgrade --without-new-pkgs
(upgrade en deux temps) : ne met à jour que le minimum.apt full-upgrade
- S'il y a besoin de geler des paquets :
apt-mark hold package_name
. Mais geler des paquets risque de rajouter du bazar, donc à réserver en cas de rapport de bug vraiment inquiétant.
- Régler les problèmes s'il y en a, puis redémarrer la machine afin de prendre en compte le changement de noyau et le reste (et de vérifier si ça reboot, grub est parfois taquin).
- Vérifier que les services marchent correctement.
- Nettoyer les restes
dpkg -l | awk '/^rc/ { print $2 }'
pour lister les paquets supprimés ayant laissé des fichiers de configurationapt purge $(dpkg -l | awk '/^rc/ { print $2 }')
pour tous les purger uniquement si la liste présente des paquets donc la config ne nous intéresse pas.- Chercher et purger les paquets obsolètes
aptitude search '~o' && aptitude purge '~o'
Source.list. Je ne met pas les src, généralement inutiles dans notre cas d'usage.
# Debian Bookworm, dépôt principal + paquets non libres deb http://deb.debian.org/debian/ bookworm main non-free-firmware contrib non-free # Debian Bookworm, mises à jour de sécurité + paquets non libres deb http://deb.debian.org/debian-security/ bookworm-security main non-free-firmware contrib non-free # Debian Bookworm, mises à jour "volatiles" + paquets non libres deb http://deb.debian.org/debian/ bookworm-updates main non-free-firmware contrib non-free