Mise à jour d’un serveur Kimsufi (OVH) depuis Debian 11 (Bullseye) vers Debian 12 (Bookworm)

Cette mise à jour est similaire à ce qui a pu être fait précédemment.

Je vais essayer d’expliquer brièvement les étapes à suivre.

  1. D’abord s’assurer de la version actuelle de Debian avec la commande suivante :
    lsb_release -a
  2. On vérifie les problèmes liés à la mise à jour.
  3. Il est recommandé d’utiliser le programme /usr/bin/script pour enregistrer une transcription de la session de mise à niveau. Ainsi, quand un problème survient, on a un enregistrement de ce qui s’est passé. Pour démarrer un enregistrement, taper :
    script -t 2>~/upgrade-debian.time -a ~/upgrade-debian.script
  4. On va effectuer une mise à jour des paquets avec apt-get update && apt-get upgrade
  5. On va sauvegarder les données :
    mkdir /root/svg_special; cp -R /var/lib/dpkg /root/svg_special/; cp /var/lib/apt/extended_states /root/svg_special/; dpkg --get-selections "*" > /root/svg_special/dpkg_get_selection; cp -R /etc /root/svg_special/etc
  6. Si vous utilisez MariaDB, il peut être bien de faire une sauvegarde complète des bases de données :
    mysqldump -u root -p --all-databases > /root/svg_special/backup-bdd.sql
  7. Ensuite il est conseillé d’utiliser screen pour pouvoir se reconnecter (avec screen -r) à en cas de déconnexion :
    screen
  8. Le processus de mise à niveau décrit sur le site de Debian a été conçu pour des mises à niveau des systèmes « purs » sans paquet provenant d’autres sources. Pour une meilleure fiabilité du processus de mise à niveau, vous pourriez vouloir supprimer ces paquets tiers du système avant de commencer la mise à niveau :
    aptitude search '~i(!~ODebian)'
  9. On peut éventuellement purger les vieux paquets obsolètes. Pour cela on va d’abord les lister, puis on peut les purger si tout semble bon:
    aptitude search '~o'
    aptitude purge '~o'
  10. On peut lancer la commande dpkg --audit pour s’assurer que tout est bon avant la migration. On peut également taper dpkg --get-selections "*" | more et vérifier qu’aucun paquet n’est en on hold
  11. Maintenant il faut remplacer tous les “bullseye” de /etc/apt/sources.list par des “bookworm”.
    On pourra par exemple utiliser la commande suivante :

    sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list

    Si vous utilisez le dépôt “non-free” de Debian 11 (ouvrez le fichier /etc/apt/sources.list pour voir si vous avez des lignes qui contiennent le mot-clé “non-free”), alors il y a une modification supplémentaire à effectuer : il faut ajouter “non-free-firmware” à la suite du mot-clé “non-free”.
    Par exemple, la ligne deb http://security.debian.org/debian-security bookworm-security main contrib non-free deviendra deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
    On pourra par exemple utiliser la commande suivante :

    sed -i 's/non-free/non-free non-free-firmware/g' /etc/apt/sources.list

    On vérifiera aussi les fichiers qui se trouvent dans /etc/apt/sources.list.d afin d’y effectuer les mêmes modifications.

  12. On passe aux choses sérieuses, en commençant par mettre à jour les listes des paquets :
    apt-get update
  13. On va vérifier qu’on a la place suffisante (un message explicite apparait sinon) :
    apt -o APT::Get::Trivial-Only=true full-upgrade
  14. On va maintenant faire une mise à jour minimale :
    apt-get upgrade
  15. Et à partir de là le système va vous questionner… en général choisir l’option par défaut si vous ne savez pas quoi répondre
  16. Puis on continue avec
    apt full-upgrade

Cette dernière étape va durer un certain temps. Une fois terminé, vous pouvez redémarrer le serveur pour s’assurer que tout va bien.

PHP

Il est bien de vérifier que la version actuelle de PHP est correctement utilisée par Apache et qu’elle correspond à ce qu’on veut. Pour cela on vérifie la version avec:

php -v

Ensuite on regarde les versions de PHP disponibles dans les modules d’Apache :

ls -l /etc/apache2/mods-available/php*

Et on regarde celle activée :

ls -l /etc/apache2/mods-enabled/php*

On regarde également dans le dossier des modules pour vérifier quelle version on a :

ls -l /etc/apache2/modules/libphp*

Si la version souhaitée est manquante dans les modules, alors on l’installe, par exemple pour la 8.4 :

apt-get install php8.4 php8.4-mysql

On s’assure ensuite de bien activer la bonne version, par exemple en passant de la v7.4 à v8.4 :

a2dismod php7.4
a2enmod php8.4

Et on redémarre Apache :

systemctl restart apache2

MariaDB

Cela peut être l’occasion de mettre à jour MariaDB. Si vous aviez un fichier /etc/apt/sources.list.d/mariadb.list, vous pouvez le supprimer et le remplacer par le fichier mariadb.sources comme indiqué dans la documentation de MariaDB.

Puis, comme indiqué dans la doc :

apt-get update
apt-get install mariadb-server

Pour finir

Une fois les erreurs corrigées, on va nettoyer tous les paquets avec :

apt-get autoremove

Note : pour arrêter screen on fait CTRL + A puis k.

Leave a Reply

Your email address will not be published. Required fields are marked *

*