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

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. 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
  3. On va effectuer une mise à jour des paquets :
    apt-get update && apt-get upgrade
  4. On fait une sauvegarde de plusieurs éléments dans le répertoire /root/svg_special :
    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
  5. Si vous utilisez MariaDB, il peut être bien de faire une sauvegarde complète des bases de données :
    /usr/bin/mariadb-dump --all-databases --single-transaction -u root -p | gzip > /root/svg_special/backup-databases.sql.gz
  6. Créez un tar.gz du répertoire de la sauvegarde, puis le télécharger dans un lieu sûr :
    tar -czf /root/backup-pre-debian13.tar.gz /root/svg_special
  7. Ensuite il est conseillé d’utiliser screen pour pouvoir se reconnecter (avec screen -r) en cas de déconnexion :
    screen

    À noter que si vous n’arrivez pas à scroller dans une session “screen”, il faut alors utiliser la commande CTRL+A, ESC pour cela. Et pour arrêter screen on fait CTRL+A, k

  8. 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
  9. On peut supprimer les résidus de fichiers de configuration avec la commande :
    find /etc -name '*.dpkg-*' -o -name '*.ucf-*' -o -name '*.merge-error' -delete
    
  10. Faire un tour dans /etc/apt/ afin de voir si des paquets ne sont pas marqués “bookworm” ou s’ils proviennent de sources tiers. Par exemple /etc/apt/sources.list.d/php.list qui pourrait indiquer deb [signed-by=/etc/apt/keyrings/sury-php.gpg] https://packages.sury.org/php/ bookworm main – pour ce type de paquet ne provenant pas de Debian, on peut commenter la liste avec # le temps de l’upgrade. Rien ne sera désinstallé, et après l’upgrade il faudra s’occuper de ces sources tierces.
  11. Maintenant il faut remplacer tous les “bookworm” de /etc/apt/sources.list par des “trixie”.
    On pourra par exemple utiliser la commande suivante :

    sed -i 's/bookworm/trixie/g' /etc/apt/sources.list
  12. On passe aux choses sérieuses, en commençant par mettre à jour les listes des paquets :
    apt 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 upgrade --without-new-pkgs
  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 termine 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.

Réactiver les sources tierces

On va reprendre un par un les fichiers dans /etc/apt/sources.list.d afin de les décommenter. On remplacera “bookworm” par “trixie”, puis on fait apt update && apt upgrade.

MariaDB

On va vérifier la version de MariaDB qu’on a avec mariadb --version. Debian aura installé la version la plus récente qui est disponible dans ses dépôts, mais on peut vouloir utiliser le fichier /etc/apt/sources.list.d/mariadb.sources afin d’avoir des mises à jour plus rapides. Plus d’explications sont disponibles sur le site de MariaDB.

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*

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

Pour finir

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

apt-get autoremove

Leave a Reply

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

*