FredVoyage

Upgrade Debian 12 vers 13 Trixie

La nouvelle version de Debian, 13 Trixie, est sortie le 9 août 2025.

J'utilise Debian sur plusieurs types de machines, et chaque machine a une version différente suivant les usages :

  • les ordinateurs utilisent Debian unstable, ce qui signifie que depuis plusieurs mois déjà, j'utilise en fait Trixie sur les ordinateurs avec Gnome notamment.
  • les serveurs web et mail utilisent Debian stable, donc version 12 Bookworm depuis leur installation puisqu'ils ont été réinstallés pour la plupart l'année dernière.
  • les serveurs d'IA utilisent Debian stable, donc comme les serveurs, 12 Bookworm.

Avant d'expliquer comment faire la mise à jour, voici à la date d'aujourd'hui, où en sont les mises à jour :

  • pour les ordinateurs, aucune mise à jour spécifique à faire puisque dès la mise en place de Trixie, les repos sont passés en 13 unstable, qui sera d'ici 2 ans la version 14 et qui regroupe les paquets mis à jour au fur et à mesure.
  • pour les serveurs web, aucun problème de mise à jour, mais pour la partie mail, attention car une grosse mise à niveau se fait en même temps pour Dovecot qui utilise la version 2.4 avec une nouvelle syntaxe sur les fichiers de configuration. Il faut vraiment faire attention à cela lors de la mise à jour, j'y reviendrai plus bas.
  • pour les serveurs d'IA, j'utilise ollama et les drivers officiels de NVIDIA pour les cartes graphiques, or ces drivers ne sont pas disponibles actuellement pour la version 13 Trixie, donc pour le moment impossible de faire la mise à jour de ces serveurs-là.

Il nous reste donc à faire une procédure assez simple pour mettre à jour les serveurs Web, et quelques petites modifications pour la partie Mail.

Avant de commencer, il est bon de lire la méthode d'upgrade officielle et tous les points qu'elle comporte sur la page de Mise à niveau depuis Debian 12.

Une fois prêt, il suffit d'effectuer ces quelques commandes :

  • d'abord, il faut mettre le système à jour sur Debian 12 :

# apt update
# apt upgrade
# apt autoremove

  • ensuite, rebooter l'ordinateur/serveur :

# reboot

  • puis modifier les fichiers des repos avec le nouveau nom Trixie :

# sudo sed -i 's/bookworm/trixie/g' /etc/apt/sources.list

  • ensuite, il faut faire la mise à jour, qui prendre 10 à 30 minutes suivant la configuration :

# apt update
# apt upgrade

  • puis, rebooter l'ordinateur/serveur une nouvelle fois et c'est fini.

En cas de difficulté, des solutions se trouvent dans la page de Mise à niveau depuis Debian 12. Sinon, Claude, ChatGPT ou Perplexity sont à même de vous aider.

Concernant Dovecot, il y a quelques petites modifications à faire, notamment sur 3 points :

  1. le stockage utilise les variables %{user|domain} et %{user|username} plus explicite, au lieu de %d et %n
  2. la configuration mySQL, si elle est utilisée, est différente
  3. la gestion des certificats SSL est différente

Il faut donc passer par ces quelques étapes :

  • ajouter dans le fichier de configuration /etc/dovecot/dovecot.conf, les lignes suivantes :

dovecot_config_version = 2.4.1
dovecot_storage_version = 2.3.21

  • il faut aussi commenter la partie qui est comme suit avec '#' sur chaque ligne :

dict {
// d'autres informations de configuration peuvent se trouver là
}

  • ensuite dans le fichier /etc/dovecot/conf.d/10-ssl.conf, modifier ces lignes :

ssl_cert = </etc/letsencrypt/fullchain.pem
ssl_key = </etc/letsencrypt/privkey.pem
ssl_dh = </usr/share/dovecot/dh.pem

et indiquer cela à la place (en conservant le chemin des fichiers, celui-ci ne change pas :

ssl_server_cert_file = /etc/letsencrypt/fullchain.pem
ssl_server_key_file = /etc/letsencrypt/privkey.pem
# ssl_dh = </usr/share/dovecot/dh.pem

Attention à bien renommer les clés et supprimer le signe '>', et à commenter la dernière ligne simplement.

  • Enfin la syntaxe pour la base de données est différente, donc commentez l'ancienne et voici la nouvelle :

sql_driver = mysql

mysql localhost {
  user = mailserver
  password = <mysqlpassword>
  dbname = <dbname>
}

passdb sql {
  passdb_default_password_scheme = SHA512-CRYPT
  query = SELECT username, domain, password \
    FROM accounts_table \
    WHERE username = '%{user | username}' AND domain = '%{user | domain}'
}
userdb sql {
  driver = static
  fields {
        uid=vmail
        gid=vmail
        home=/var/mail/%{user | domain}/%{user | username}/
  }
}

Il faut aussi modifier la table de la base de données, c'est plus simple, en ajoutant 2 champs :

ALTER TABLE accounts_table ADD COLUMN username varchar(64) DEFAULT '' AFTER DomainId;
ALTER TABLE accounts_table ADD COLUMN domain varchar(64) DEFAULT '' AFTER username;

Il faudra ensuite remplir ces champs car le champs Email ne servira plus directement.

  • Il suffit de redémarrer le serveur devocot, et plus généralement, c'est mieux de redémarrer le serveur totalement pour être sûr.

Maintenant que les ordinateurs sont à jour, que le serveur web/mail est à jour, il ne restera qu'à mettre à jour les serveurs IA, dès que ça sera possible.