Migration de Debian Bookworm vers Trixie

De Linux Server Wiki
Aller à la navigation Aller à la recherche


Préparation

Assurez vous que vous êtes à la dernière version de debian

apt update
apt full-upgrade

Vérifiez l'absence d'action en attente si vous utilisez aptitude

Lancez aptitude puis tapez G

Supprimez les paquets obsolètes

apt list '~o'
apt purge '~o'

Identifiez les paquets non-debian qui pourraient poser soucis lors de la mise à jour

Tous les paquets non fournis par debian peuvent poser problème. A vos risques et péril.
Pour les identifier :

apt list '?narrow(?installed, ?not(?origin(Debian)))'
apt-forktracer | sort

A vous de décider ou non de les supprimer avant la mise à niveau, certains paquets peuvent néanmoins gêner la mise à niveau.

Supprimez les fichiers de configuration non utilisés

find /etc -name '*.dpkg-*' -o -name '*.ucf-*' -o -name '*.merge-error'

Désactivez le pinning

Dans /etc/apt/preferences et /etc/apt/preferences.d/

Vérifiez l'absence de paquets cassés

dpkg --audit

Enlevez les éventuels holds qui pourraient faire échouer la mise à jour

Pour identifier les paquets en hold :

apt-mark showhold
aptitude search "~ahold" 
dpkg --get-selections | grep 'hold$'

Pour supprimer un hold :

apt-mark unhold package_name

Désactivez les entrées backports de votre sources.list

Sources non officielles

Assurez vous que ces sources possèdent des paquets compilés pour la nouvelle version de debian

Spécificités trixie

Mariadb

MariaDB ne supporte pas une récupération d'erreur entre deux versions majeurs, il faut donc s'assurer que vos bases de données sont propres et que les données et buffers sont bien écrit sur le disque avant de mettre à jour debian. Pour cela :

service mariadb stop

Puis vérifiez dans les logs la présence d'une ligne Shutdown complete. Si ce n'est pas le cas, relancez mariadb pour lancer la récupération automatique des tables, attendez, puis stoppez à nouveau mariadb et vérifiez dans les logs que le nouvel arrêt s'est fait proprement.

Mise à jour

Mise à jour de /etc/apt/sources.list

Debian Trixie utilise la nouvelle version deb822-style pour les sources apt.

Il faut transformer le fichier /etc/apt/sources.list et tout fichier *.list situé dans /etc/apt/sources.list.d/ en un fichier /etc/apt/sources.list.d/debian.sources

Exemple de fichier debian.sources :

# main and updates
Types: deb
URIs: https://deb.debian.org/debian
Suites: trixie trixie-updates
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

# security
Types: deb
URIs: https://security.debian.org/debian-security
Suites: trixie-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Mise à jour de la liste des paquets

apt update

Assure vous d'avoir assez d'espace libre

La commande suivante permet de voir l'espace nécessaire pour la mise à jour :

apt -o APT::Get::Trivial-Only=true full-upgrade

Enregistrez les actions effectuées

apt loguera les packets modifiés dans /var/log/apt/history.log et la sortie du terminal dans /var/log/apt/term.log

Mise à jour

apt upgrade --without-new-pkgs
apt full-upgrade

Si un prompt vous demande s'il doit installer une nouvelle version d'un fichier, répondez de préférence oui puis faites les adaptations nécessaires à votre configuration après la fin de la mise à jour. L'ancien fichier restera disponible, suffixé de .dpkg-old

Cleanup

Supprimez les paquets qui ne sont plus nécessaires

apt autoremove

Identifiez les configurations et fichier résiduels des paquets qui ne sont plus nécessaires

apt list '~c'

Purgez ces paquets

apt purge '~c'

Identifiez et supprimez les paquets obsolètes

Ce sont des paquets qui ne sont plus maintenu par debian.

  • Pour les lister :
apt list '~o'
  • Pour les supprimer :
apt purge '~o'

Spécificités trixie

Risque de modification du nom des interfaces réseaux

https://www.debian.org/releases/trixie/release-notes/issues.en.html#network-interface-names-may-change

Le dossier des fichiers temporaires /tmp est maintenant un tmpfs

Pour récupérer ou supprimer les anciens fichiers du dossier /tmp il faut faire un bind mount :

mount --bind / /mnt

Les anciens fichiers tmp seront dans /mnt/tmp/

Par défaut, le dossier /tmp disposera de 50% de la mémoire du système. Vous pouvez modifier l'espace alloué avec systemctl edit tmp.mount et modifier par exemple :

[Mount]
Options=mode=1777,nosuid,nodev,size=2G

Si vous souhaitez retrouver un dossier /tmp classique (sans tmpfs) :

systemctl mask tmp.mount

Puis redémarrer

Les dossiers /tmp et /var/tmp sont purgés automatiquement

https://www.debian.org/releases/trixie/release-notes/issues.en.html#the-directories-tmp-and-var-tmp-are-now-regularly-cleaned

Cette fonctionnalité n'est pas activé automatiquement après l'upgrade. Pour l'activer supprimez le fichier /etc/tmpfiles.d/tmp.conf :

rm -f /etc/tmpfiles.d/tmp.conf

Après cela, les fichiers dans /tmp seront automatiquement supprimé après 10 jours et les fichiers dans /var/tmp après 30 jours

Les paquets isc-dhcp sont dépréciés

Si vous utilisez NetworkManager ou systemd-networkd : rien à faire et vous pouvez supprimer le paquet isc-dhcp-client.

Si vous utilisez ifupdown, le paquet dhcpcd-base fourni un client dhcp de remplacement.

si la commande ping ne fonctionne plus pour les utilisateurs

https://www.debian.org/releases/trixie/release-notes/issues.en.html#ping-no-longer-runs-with-elevated-privileges

Appendice

https://www.debian.org/releases/trixie/release-notes/upgrading.en.html