05/12/2025

Linux

Linux : mise à niveau de Debian 12 Bookworm vers Debian 13 Trixie

I. Présentation

Dans ce tutoriel, nous allons voir comment effectuer la mise à niveau de Debian 12 Bookworm vers Debian 13 Trixie, étape par étape, pour vous permettre de réaliser l'opération sereinement.

Debian est réputée pour sa stabilité et son cycle de publication régulier. En effet, environ tous les deux ans, une nouvelle version stable vient remplacer l’ancienne. Ainsi, le 9 août 2025, Debian 13 est venue succéder à Debian 12 en tant que version stable la plus récente, avec à la clé, des milliers de paquets mis à jour et un ensemble de nouveautés, dont l'utilisation du noyau Linux 6.12 LTS.

Cette nouvelle version sera prise en charge jusqu'au 30 juin 2030. L'occasion de vous proposer un tableau récapitulatif avec des informations sur les trois versions de Debian encore sous support à ce jour (voir cette page) :

Version de DebianDate de sortieFin du support standardFin du support LTSDernière version
Debian 13 Trixie9 août 202509 août 202830 juin 203013.0
Debian 12 Bookworm10 juin 202310 juin 202630 juin 202812.11
Debian 11 Bullseye14 août 202114 août 202431 août 202611.11

Si vous utilisez Debian 11, vous ne pourrez pas passer directement à Debian 13. Seule la migration de Debian 12 à Debian 13 est supportée, donc dans ce cas, vous devrez procéder en deux temps.

À noter un autre changement important introduit par Debian 13 : les utilisateurs encore sur des systèmes 32 bits devront migrer vers du 64 bits ou envisager une distribution alternative, car Debian 13 a un support très limité du 32 bits.

Vous pouvez en savoir plus sur les nouveautés de Debian 13 en lisant cet article :

II. Avant de commencer : sauvegardez vos données

Avant toute mise à jour majeure d'une machine, la sauvegarde des données est indispensable. En fonction du scénario dans lequel vous vous situez, vous pouvez réaliser cette opération préventive de plusieurs façons :

  • Machine virtuelle : réalisez une sauvegarde de la machine virtuelle ou un snapshot (suffisant pour un retour-arrière rapide).
  • Machine physique : réalisez une image disque complète de votre système avec un outil comme Clonezilla, UrBackup ou autre selon vos habitudes.

Une autre méthode consiste simplement à utiliser la commande tar pour créer une archive tar.gz des fichiers sensibles. Nous pourrons alors sauvegarder dans cette archive les fichiers situés dans /home, mais aussi dans /etc et /root, et pourquoi pas /var/www si vous avez un site web sur votre machine.

Comment réaliser cette sauvegarde ? L'exemple ci-dessous sert à créer une archive compressée au format tar.gz contenant les répertoires essentiels du système, comme les configurations, les données utilisateurs, les tâches planifiées, et la liste des paquets, afin de disposer d’une sauvegarde avant une mise à niveau.

Elle ignore les erreurs liées à d’éventuels fichiers manquants et exclut les répertoires temporaires ou de cache pour éviter d’alourdir inutilement l’archive. Le fichier généré est stocké dans /root/ avec un nom daté, ce qui permet d’identifier facilement la sauvegarde. En fonction de vos besoins, vous pouvez ajouter d'autres répertoires à la sauvegarde (dernière ligne).

Commencez par exécuter la commande suivante pour créer le fichier packages.list dans le répertoire d'accueil de l'utilisateur actuel. Cela permet d’obtenir un inventaire complet des logiciels installés ou désinstallés. Une opération utile pour sauvegarder la liste des paquets avant la mise à niveau (ou une réinstallation). Ce fichier sera inclus à notre archive globale.

dpkg --get-selections > ~/packages.list

Ensuite, lancez la sauvegarde des données :

sudo tar --ignore-failed-read -czpvf /root/backup-before-upgrade-$(date +%F).tar.gz \
  --exclude='/home/*/.cache' \
  --exclude='/home/*/.local/share/Trash' \
  --exclude='/var/cache' \
  --exclude='/var/tmp' \
  --exclude='/tmp' \
  --exclude='/root/backup-before-upgrade-*.tar.gz' \
  /etc /home /root /var/spool/cron /var/lib/dpkg /var/lib/apt/extended_states

Ensuite, transférez l’archive vers un support externe ou accessible via le réseau pour mettre vos données en lieu sûr. Une fois cette étape accomplie, vous pouvez passer à la suite.

III. Les étapes pour passer de Debian 12 à Debian 13

Dans la suite de cet article, nous verrons comment passer de Debian 12 à Debian 13. Veillez à suivre les étapes dans l'ordre tel qu'elles sont présentées. La méthode décrite dans ce tutoriel s'applique aux postes de travail et aux serveurs sous Debian, avec ou sans interface graphique.

L'opération de mise à niveau implique un arrêt des services puisque plusieurs redémarrages sont à prévoir. De plus, veillez à disposer de plusieurs gigaoctets de libre sur votre disque pour que l'opération se déroule correctement (de nombreux paquets seront téléchargés).

A. Votre machine utilise-t-elle Debian 12 ?

Cette vérification vous semble peut-être inutile, mais dans le cas où vous avez un doute, vérifiez que la machine que vous souhaitez mettre à jour utilise bien Debian 12. Ouvrez un terminal et exécutez la commande suivante :

lsb_release -a

Vous devriez obtenir une réponse similaire à celle-ci :

No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 12 (bookworm)
Release:	12
Codename:	bookworm

Pour afficher la version précise, utilisez :

cat /etc/debian_version

Cette commande me retourne l'information suivante : 12.8.

B. Appliquez les dernières mises à jour

Avant de passer à Debian 13, assurez-vous de disposer d'une machine Debian 12 entièrement à jour. Autrement dit, mettez à jour tous les paquets et le système Debian 12 en lui-même. Exécutez cet enchainement de deux commandes :

sudo apt-get update && sudo apt-get dist-upgrade --autoremove -y

Patientez quelques minutes pendant l'opération, puis redémarrez votre serveur :

sudo reboot

Suite au redémarrage, si vous êtes curieux, vous devriez relancer la commande cat /etc/debian_version pour voir que cette fois-ci, vous disposez de Debian 12.11. Il s'agit de la dernière version de Debian 12.

C. Utilisez-vous des paquets non proposés par Debian ?

Sur une machine Linux, qu'elle soit sous Debian ou une autre distribution, il n'est pas rare d'installer des paquets à partir de dépôts tiers. Docker est un excellent exemple, car il n'est dans les dépôts officiels de Debian.

Vous pouvez lister les paquets installés hors des dépôts Debian officiels avec cette commande. Elle liste les paquets à partir de la commande apt list en appliquant des filtres (patterns).

sudo apt list '?narrow(?installed, ?not(?origin(Debian)))'

Cette commande liste tous les paquets installés qui ne proviennent pas des dépôts officiels Debian. Cela inclut par exemple :

  • Des paquets installés manuellement avec dpkg -i (fichiers .deb téléchargés ailleurs),
  • Des paquets provenant de dépôts tiers ajoutés dans /etc/apt/sources.list.d/,
  • Ou des paquets compilés localement, même si c'est un cas un peu plus rare.

Sur la machine utilisée pour cette démonstration, la commande me remonte un paquet :

En train de lister... Fait
isc-stork-server/bookworm,now 2.2.0.250610122904 amd64  [installé]

Il correspond à Stork, l'interface web pour surveiller le serveur DHCP KEA. À partir de là, vous avez deux options :

  • Supprimer le paquet et le réinstaller sur Debian 13
  • Conserver le paquet, en partant du principe que c'est un dépôt compatible avec Debian 13

Il est également possible d'ajouter un marqueur hold sur les paquets qui ne doivent pas être mis à jour pour ajouter un verrou. Par exemple :

# Ajouter le verrouillage :
sudo apt-mark hold <nom du paquet>

# Retirer le verrouillage :
sudo apt-mark unhold <nom du paquet>

Ce qui est important ici, afin d'éviter une erreur lors de la mise à niveau, c'est de consulter la liste actuelle des paquets potentiellement hold. Il est fort possible que ce soit vide (dans ce cas, poursuivez sans vous poser de question), mais il vaut mieux anticiper et vérifier.

La documentation officielle de Debian précise : "Il est souhaitable d’enlever tous les blocages de paquets avant de procéder à la mise à niveau. Si un paquet essentiel pour la mise à niveau est bloqué, cette dernière échouera."

sudo apt-mark showhold

Ensuite, vous pouvez continuer !

D. modifier les dépôts APT

Actuellement, notre machine pointe vers les dépôts de Debian 12, ainsi que d'éventuels dépôts tiers. Nous devons lui indiquer de pointer vers les dépôts de Debian 13 Trixie pour récupérer les fichiers de cette nouvelle version. Ceci implique de modifier les sources de paquets configurées en local, à savoir le fichier /etc/apt/sources.list et le répertoire /etc/apt/sources.list.d/ pour les dépôts tiers.

Si vous n'avez pas effectué une sauvegarde dans une archive tar.gz, vous pouvez sauvegarder ces fichiers par précaution. Sinon, c'est déjà dedans.

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bkp
sudo cp -r /etc/apt/sources.list.d /etc/apt/sources.list.d.bkp

Puis, nous allons modifier les noms des dépôts pour remplacer les occurrences bookworm en trixie. Inutile de le faire manuellement, la redoutable commande sed va nous aider à effectuer cette action de façon automatisée. Voici la commande à exécuter :

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

Si vous ouvrez le fichier sources.list, vous pourrez constater que trixie s'est incrusté un peu partout. En complément de non-free dédié aux logiciels propriétaires (pour les paquets NVIDIA, par exemple), le dépôt non-free-firmware est nouveau depuis Debian 12, afin de regrouper les paquets non conformes aux directives de Debian (Debian Free Software Guidelines) correspondants à des firmwares propriétaires.

À titre de comparaison, voici le fichier sources.list par défaut d'une machine Debian 13 :

deb http://ftp.fr.debian.org/debian/ trixie main non-free-firmware
deb-src http://ftp.fr.debian.org/debian/ trixie main non-free-firmware

deb http://security.debian.org/debian-security trixie-security main non-free-firmware
deb-src http://security.debian.org/debian-security trixie-security main non-free-firmware

# trixie-updates, to get updates before a point release is made;
# see https://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_updates_and_backports
deb http://ftp.fr.debian.org/debian/ trixie-updates main non-free-firmware
deb-src http://ftp.fr.debian.org/debian/ trixie-updates main non-free-firmware

# This system was installed using small removable media
# (e.g. netinst, live or single CD). The matching "deb cdrom"
# entries were disabled at the end of the installation process.
# For information about how to configure apt package sources,
# see the sources.list(5) manual.

E. Mise à niveau vers Debian 13

Votre machine est prête à être mise à niveau de Debian 12 vers Debian 13 ! Si vous êtes prêts, exécutez l'enchainement de commandes ci-dessous pour mettre à jour le cache des paquets puis votre distribution Debian.

sudo apt-get update && sudo apt-get dist-upgrade --autoremove -y

Patientez quelques minutes pendant l'opération.

Upgrade Debian 12 vers Debian 13

Une fois la mise à niveau terminée, redémarrez :

sudo reboot

F. Votre machine utilise-t-elle Debian 13 ?

Vérifiez ensuite que vous êtes bien sous Debian 13, histoire d'en avoir le cœur net.

lsb_release -a

Cette fois-ci, nous obtenons la sortie suivante :

Distributor ID:	Debian
Description:	Debian GNU/Linux 13 (trixie)
Release:	13
Codename:	trixie

L'opération est un succès !

G. Nettoyage post-migration

Une fois la mise à niveau de Debian 12 vers Debian 13 terminée, il est recommandé d’effectuer un nettoyage du système afin de supprimer les paquets devenus inutiles et de libérer de l’espace disque. Cette opération permet aussi d’éviter que des bibliothèques obsolètes ou des fichiers de configuration résiduels ne s’accumulent au fil du temps.

La commande suivante retire les dépendances installées pour d’autres paquets, mais qui ne sont plus utilisées. L’option --purge permet d’effacer également leurs fichiers de configuration :

sudo apt autoremove --purge

Après une mise à niveau, certains paquets peuvent ne plus exister dans les dépôts de Debian 13. Pour identifier et supprimer ces paquets devenus obsolètes, utilisez la commande suivante.

sudo apt purge '~o'

Attention : vérifiez toujours la liste proposée avant de valider, car certains logiciels tiers peuvent apparaître comme obsolètes tant que leur dépôt n’a pas été mis à jour.

Enfin, pour libérer de l’espace disque, vous pouvez supprimer les anciennes archives .deb qui ne sont plus téléchargeables depuis les dépôts officiels. Cette dernière action est sans risque.

sudo apt autoclean

Ces trois commandes permettent de finaliser la mise à niveau en effectuant un nettoyage. Néanmoins, dans un premier temps, il est conseillé d’exécuter les deux premières commandes avec l’option de simulation (-s) afin de vérifier les suppressions proposées avant leur application effective.

H. Utiliser le nouveau format pour les sources

Pour finir, nous allons exécuter une nouvelle commande présente dans Debian 13 (grâce à la mise à jour d'APT) pour convertir les fichiers de dépôts vers le nouveau format deb822 :

sudo apt modernize-sources

Validez avec O et appuyez sur Entrée.

[sudo] Mot de passe de flo : 
The following files need modernizing:
  - /etc/apt/sources.list
  - /etc/apt/sources.list.d/isc-stork.list

Modernizing will replace .list files with the new .sources format,
add Signed-By values where they can be determined automatically,
and save the old files into .list.bak files.

This command supports the 'signed-by' and 'trusted' options. If you
have specified other options inside [] brackets, please transfer them
manually to the output files; see sources.list(5) for a mapping.

For a simulation, respond N in the following prompt.
Réécrire les sources 2 ? [O/n] O
Modernizing /etc/apt/sources.list...
- Writing /etc/apt/sources.list.d/debian.sources

Modernizing /etc/apt/sources.list.d/isc-stork.list...
- Writing /etc/apt/sources.list.d/isc-stork.sources

Désormais, avec ce format sous la forme clé / valeur, le fichier sources.list n'est plus utilisé. À la place, il y a des fichiers .sources directement dans le répertoire sources.list.d. Voici, par exemple, le fichier debian.sources :

# Modernized from /etc/apt/sources.list
Types: deb deb-src
URIs: http://ftp.fr.debian.org/debian/
Suites: trixie
Components: main non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

# Modernized from /etc/apt/sources.list
Types: deb deb-src
URIs: http://security.debian.org/debian-security/
Suites: trixie-security
Components: main non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

# Modernized from /etc/apt/sources.list
Types: deb deb-src
URIs: http://ftp.fr.debian.org/debian/
Suites: trixie-updates
Components: main non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

IV. Conclusion

En suivant ce tutoriel, vous devez réussir la migration de Debian 12 Bookworm vers Debian 13 Trixie. Grâce à cette mise à niveau, vous bénéficiez de la dernière version de Debian pour les prochaines années ! Attention, cette version est encore assez récente, donc il n'est pas à exclure qu'il y a certains bugs ou problèmes de compatibilité. Suite à la migration, veillez à tester vos services critiques hébergés sur votre machine.

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

19 commentaires sur “Linux : mise à niveau de Debian 12 Bookworm vers Debian 13 Trixie

  • Alors attention, parce que je viens de me faire avoir, mais les gens qui ont un VPS OVH installé sous Debian 12, votre source.list utilise DEJA le format deb822 (ça peut surprendre ^^)

    Répondre
  • Attention, dans le tableau de la présentation de votre article, vous avez marqué Debian 12 Trixie et non Debian 12 Bookworm.

    Répondre
  • Bonjour,
    Juste une « coquille » à vous signaler (pour correction) : dans votre tableau on peut lire « Debian 12 Trixie » en lieu et place de « Debian 12 Bookworm ». Merci pour vos articles ! Cordialement.

    Répondre
  • sudo apt purge ‘~o’

    Sur mon pc où j’avais installé une debian bookworm from scracth cette commande s’est bien passée. Par contre sur mon serveur où j’ai migré depuis debian 11 vers 12 vers 13, il m’a sorti une sacré liste de paquets (6 GB !) comme gnome . Je ne l’ai pas lancé car m’aurait cassé mon install assurément.

    Sinon tout s’est bien passé même si j’ai fait un peu à ma sauce les premières étapes.

    Merci pour le tuto !

    Répondre
  • Bonjour,
    Et quid pour un Proxmox ?
    Mon installation Proxmox est sous Debian 12. Faut-il envisager une migration vers Debian 13 selon votre tutoriel ou existe-t-il une autre façon avec Proxmox ?
    Merci pour votre aide et vos tutos.

    Répondre
  • Hello Florian,
    Merci pour ce tuto toujours clair et agréable.
    J’ai une question de curiosité.
    Pourquoi utilises-tu apt-get au lieu de apt ?
    Sur la doc Debian ils préconisent apt (tout court ^^)

    Ce n’est pas une critique, je suis vraiment curieux 🙂

    Merci encore.

    Répondre
    • Hello Marc,
      Honnêtement, c’est une vieille habitude 🙂
      Pour une action comme ça, apt ferait largement l’affaire en effet.

      Répondre
  • Bonjour Florian,

    Impeccable, merci et bravo pour le tuto!

    NH

    Répondre
  • Bonjour,
    Pour ce qui est de la sauvegarde avec « tar » en incluant « root » dans la sauvegarde, ne faut-il pas exclure les « cache » de « root » et certainement tous le « home » de « root » et aussi et surtout le fichier de backup.tar.g.z lui même, car sinon, on a une boucle récursive insoluble me semble t-il ?!

    En effet, la commande crée le « tar » dans le homme de « root » et copie le « home » de « root » dans le « tar »…. :/ c’est sans fin non ?

    Répondre
    • Bonjour Bat,
      Ta remarque est pertinente ! Pour autant, je n’ai pas constaté de boucle infinie en utilisant ce bout de code pour faire les sauvegardes. Mais, je vais rajouter la directive --exclude='/root/backup-before-upgrade-*.tar.gz' \ dans la commande pour ne pas chercher à sauvegarder le fichier de backup.

      Répondre
      • Bonjour,
        Merci pour ta réponse mais elle arrive trop tard.

        En voyant le terminal mouliner sur « root/backup-truc-much » j’ai fermé ce dernier. Ensuite j’ai fait la mise à jour vers Debian-13 pensant que cela réglerait mes soucis. Que néni, la 13 présentait les mêmes problèmes. J’ai donc, impatient, écrasé tout cela en réinstallant directement la 13. Sauf que maintenant je suis incapable d’ouvrir l’archive de « backup-tru-machin », certainement parce que j’ai fermé le terminal avant le terme… Mais bon, avec 40 giga d’archive, ça risquait de mouliner longtemps.

        J’ai juste perdu quelques années de dossiers/fichiers…. Grumphhh :/

        « gzip: stdin: unexpected end of file
        tar: Unexpected EOF in archive
        tar: Error is not recoverable: exiting now »

        Cela m’apprendra à mieux apprendre et surtout comprendre.

        @+

        Répondre
  • Re bonjour,
    Je suis surpris. J’ai laissé un commentaire où je m’interrogeais sur la sauvegarde avec « tar » et je vois que celui-ci a été supprimé sans autre forme de procès….
    hmmmm…

    Répondre
    • Bonjour,
      Il n’a pas été supprimé, c’est juste que je dois manuellement approuver les commentaires (pour éviter les spams). Nous sommes samedi, je suis un peu moins réactif.

      Répondre
      • Yep. Pas de soucis. Sinon, je reste dubitatif sur le fait de placer le backup dans le « home » de « root » et de lui demander de sauvegarder « root ». Ça fait pas une boucle infinie ?

        Répondre
  • Bonjour Florian,
    Merci beaucoup pour ce tuto qui m’a aidé à migrer mon serveur vers Debian 13 sans aucun problème.
    Un petit Commentaire:
    Une remarque préalable sur la possibilité de réaliser la migration en session SSH m’aurait beaucoup rassuré.
    (tout s’est très bien passé à travers SSH)
    Encore merci !

    Répondre
  • Bonjour et merci pour ce tuto bien détaillé.
    J’ai arrêté brutalement la sauvegarde avec « tar » (en fermant le terminal) avant de n’avoir pus d’octets libres pour éviter le crash du système car il me sauvegardait entièrement les disques montés.
    J’ai ensuite supprimé le fichier backup-before-upgrade que j’ai retrouvé dans /root.
    Guillaume.

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.