[Tuto] Mettre à jour Debian 9 vers Debian 10 "Buster"

La dixième version de la distribution Debian est sortie il y a quelques jours. Cette nouvelle version apporte son lot de nouveautés comme vous avez pu lire dans mon billet sur les nouveautés de Debian 10 "Buster". À la fin de cet article, je vous annonçais préparer un tutoriel pour migrer facilement de Debian 9 vers Debian 10. C'est ce que je vous propose aujourd’hui.

Debian 10

 

Avant de lancer la migration

Avant de vous lancer dans la migration de Debian, je vous conseille plus que fortement d'effectuer une sauvegarde de vos données importantes, au cas où. Pensez également à sauvegarder les fichiers de configuration que vous auriez personnalisés, on sait jamais.

À savoir : lorsque vous allez migrer votre distribution, aptitude est susceptible de vous poser un certain nombre de questions, comme par exemple si vous souhaitez vraiment redémarrer tel service (ce qui est obligatoire pour le mettre à jour), si vous souhaitez conserver un ancien fichier de configuration ou si vous souhaitez utiliser le fichier par défaut de la nouvelle version, etc. Restez donc à proximité pendant toute la durée de la migration.

 

De Debian 9 vers Debian 10

Mise à jour complète de Debian 9

Avant de commencer la mise à jour vers Debian 10, on va déjà mettre la version 9 le plus à jour possible. Pour cela, ouvrez un terminal et saisissez les commandes suivantes (attention, pensez à utiliser sudo si vous n'êtes pas l'utilisateur root) :

# apt-get update

# apt-get upgrade

# apt-get dist-upgrade

Vous pouvez aussi effectuer cela en une seule fois, comme j'ai l'habitude  de le faire :

# apt-get update && apt-get upgrade && apt-get dist-upgrade

 

Modification des sources de mise à jour

Pour mettre à jour sa distribution, il convient de modifier les sources de mises à jour. Pour cela, il suffit d'éditer le fichier /etc/apt/sources.list et de remplacer toutes les occurrences : stretch par buster. Pour le faire, facilement et rapidement, on va utiliser la commande sed :

# sed -i 's/stretch/buster/g' /etc/apt/sources.list

Si vous n'êtes pas trop familiarisé avec la commande sed et que vous préférez utiliser votre éditeur de texte habituel, vous pouvez le faire sans souci. Votre fichier devrait, au final, contenir les lignes suivantes :

deb http://httpredir.debian.org/debian buster main

deb http://httpredir.debian.org/debian buster-updates main

deb http://security.debian.org buster/updates main

Une fois que la modification des sources a été effectuée, on va lancer la mise à jour de l'index des paquets :

# apt-get update

 

Vérification de la migration à venir

Cette étape n'est pas obligatoire, mais si vous le souhaitez, vous pouvez vérifier ce qui sera mis à jour en saisissant la commande ci-dessous :

# apt list --upgradable

 

Mise à jour de Debian 9 vers Debian 10

Tout est désormais prêt pour lancer la migration. Il ne reste plus qu'à lancer la commande suivante :

# apt-get upgrade && apt-get dist-upgrade 

Certains services installés sur votre machines vont avoir besoin de redémarrer lors de la mise à jour. Apt va alors vous demander si vous souhaitez ou non redémarrer ces services de manière automatique. À vous de voir, personnellement pour ne pas être contraint de rester derrière le clavier, pour redémarrer chaque service, je clique sur Yes.

À l'issue de la mise à jour, il vous suffit de redémarrer votre serveur et hop : il sera migré sous Debian 10 ! Elle est pas belle la vie ? 😆 

Vous pouvez vérifier tout cela en saisissant la commande suivante :

cat /etc/os-release

Résultat de la commande 'cat /etc/os-release'

Résultat de la commande 'cat /etc/os-release'

Et voilà ! Vous possédez maintenant la dernière version de Dabien, alias Debian Buster.

 

Steven

Ingénieur Systèmes passionné d'informatique et de High-Tech, Sandstorm a créé JusteGeek.fr en 2013. Il aime les geekeries en tout genre. "Si un produit s'allume c'est un bon point. S'il est connecté, c'est encore mieux !"

Vous aimerez aussi...

21 réponses

  1. Charles dit :

    Bonjour, ayant un serveur Plex installé sur mon raspi, penses-tu que de passer à la version 10 de debian va poser problème.

    Merci d’avance pour ton retour

    • Sandstorm dit :

      Bonjour Charles,
      En principe la migration de l'OS ne devrait pas impacter ton serveur Plex. J'ai pour ma part effectuer la migration de serveurs avec des sites web, etc et rien n'a été altéré.
      En revanche il faut que tu utilise bien les dépôts Raspbian et pas les dépôts Debian de mon tuto...
      Mais si j'étais toi, au cas où, je ferai une copie intégrale de la carte SD (avec dd par exemple) comme ça si tu rencontre un problème d'incompatibilité quelconque, tu peux restaurer ta SD 🙂

  2. Didier CARADEC dit :

    Merci pour cette procédure synthétique et concise qui va à l'essentiel.

  3. RENOIRT dit :

    Bonjour,
    Un grand merci pour ce tuto qui permet au novice de suivre
    Cependant je ne sais pas utiliser la cmd sed dans mon terminal "# sed -i 's/stretch/buster/g' /etc/apt/sources.list"
    dois-je saisir sudo devant?
    l'invite est pi@raspberrypi:~ $
    Lorsque je saisie le ligne sans # j'ai le msg suivant: sed: impossible d'ouvrir le fichier temporaire /etc/apt/sedyow3gc: Permission non accordée
    En espérant pouvoir lire votre réponse
    Cordialement,

  4. Notix dit :

    Bonjour, quand j'effectue la mise a jour j'ai ce message à un moment et je ne sais pas quoi faire:

    Install these packages without verification? [y/N] y
    Reading changelogs... Done
    apt-listchanges: News
    ---------------------

    apt (1.8.0~alpha3) unstable; urgency=medium

    The PATH for running dpkg is now configured by the option DPkg::Path,
    and defaults to "/usr/sbin:/usr/bin:/sbin:/bin". Previous behavior of
    not changing PATH may be restored by setting the option to an empty string.

    Support for /etc/apt/auth.conf.d/ has been added, see apt_auth.conf(5).

    -- Julian Andres Klode Tue, 18 Dec 2018 15:02:11 +0100

    apt (1.6~rc1) unstable; urgency=medium

    Seccomp sandboxing has been turned off by default for now. If it works
    for you, you are encouraged to re-enable it by setting APT::Sandbox::Seccomp
    to true.

    -- Julian Andres Klode Fri, 06 Apr 2018 14:14:29 +0200

    apt (1.6~beta1) unstable; urgency=medium

  5. STEPHANE dit :

    Bonjour,
    Complétement newbies en Dedian je souhaitais migrer de Strech vers Buster jusqu'a la modification du fichier souces.list de votre tuto tout allait bien, mais mon fichier est un peu différent de ce que vous indiquez dans votre tuto, la question, est : dois je simplement remplacer toutes les occurrences 'Strech" par "Buster" et continuer la procédure ou dois je retaper les lignes telles qu'indiquées dans votre tuto ?
    Ci dessous mon fichier Sources.list
    D'avance merci de votre retour

    # deb cdrom:[Debian GNU/Linux 9.1.0 _Stretch_ - Official Multi-architecture amd64/i386 NETINST #1 20170722-14:09]/ stretch main

    #deb cdrom:[Debian GNU/Linux 9.1.0 _Stretch_ - Official Multi-architecture amd64/i386 NETINST #1 20170722-14:09]/ stretch main

    deb http://ftp.fr.debian.org/debian/ stretch main non-free contrib
    deb-src http://ftp.fr.debian.org/debian/ stretch main non-free contrib

    deb http://security.debian.org/debian-security stretch/updates main non-free contrib
    deb-src http://security.debian.org/debian-security stretch/updates main non-free contrib

    # stretch-updates, previously known as 'volatile'
    # deb http://ftp.fr.debian.org/debian/ stretch-updates main non-free
    # deb-src http://ftp.fr.debian.org/debian/ stretch-updates main non-free
    deb http://ftp.debian.org/debian stretch-backports main
    deb http://ftp.de.debian.org/debian stretch main non-free
    deb-src http://ftp.de.debian.org/debian stretch main non-free
    # deb http://ftp.debian.org/debian stretch-backports main
    # deb http://ftp.de.debian.org/debian stretch main non-free
    # deb-src http://ftp.de.debian.org/debian stretch main non-free
    # deb http://ftp.debian.org/debian stretch-backports main
    # deb http://ftp.de.debian.org/debian stretch main non-free
    # deb-src http://ftp.de.debian.org/debian stretch main non-free

    • Sandstorm dit :

      Bonjour Stéphane,
      Oui, tu peux lancer la commande SED que j'ai donné dans ce tuto, cela va remplacer stretch par buster, et ensuite tu pourras lancer ta mise à jour.
      Attention, comme une migration n'est jamais sans risque, penses aux backups avant 🙂
      ++

  6. Francois Guel dit :

    Bonjour,
    J'essaye de migrer ma machine de stretch vers buster.
    # apt-get upgrade && apt-get dist-upgrade
    se deroulait bien et a transfere les paquets convenablement. C'est le depaquetage qui s'est planté. Peut etre sur un probleme de place disque meme si j'avais theoriquement 16G de libre ou de memoire 4 GO ?. (Y a t'il moyen de voir un log ? dmesg ?)
    La situation actuelle est la suivante :
    francois@petitNoir:~$ more /etc/os-release
    PRETTY_NAME="Debian GNU/Linux bullseye/sid"
    NAME="Debian GNU/Linux"
    ID=debian
    HOME_URL="https://www.debian.org/"
    SUPPORT_URL="https://www.debian.org/support"
    BUG_REPORT_URL="https://bugs.debian.org/"
    francois@petitNoir:~$

    Incomprehensible bullseye/sid puisque :

    francois@petitNoir:~$ more /etc/apt/sources.list
    deb http://security.debian.org/debian-security/ buster/updates main contrib non-free
    deb-src http://security.debian.org/debian-security/ buster/updates main contrib non-free
    deb http://ftp.fr.debian.org/debian/ buster main non-free
    francois@petitNoir:~$
    Rien que du buster et certainement pas du bullseye !
    francois@petitNoir:~$ ls /etc/apt/sources.list.d
    francois@petitNoir:~$
    Le repertoire sources.list.d est bien vide

    Et voilà l'état de l'apt :

    francois@petitNoir:~$ sudo apt --fix-broken install

    Lecture des listes de paquets... Fait
    Construction de l'arbre des dépendances... Fait
    Lecture des informations d'état... Fait
    Correction des dépendances... a échoué.
    Les paquets suivants contiennent des dépendances non satisfaites :
    gir1.2-gdkpixbuf-2.0 : Dépend: libgdk-pixbuf-2.0-0 (>= 2.39.2) mais il n'est pas installable
    gkrellm : Dépend: libgdk-pixbuf-2.0-0 (>= 2.22.0) mais il n'est pas installable
    kinfocenter : Dépend: libegl1 mais il n'est pas installable
    kodi-bin : Dépend: libmariadbclient18 (>= 5.5.36) mais il n'est pas installable
    libappstream4 : Dépend: libglib2.0-0 (>= 2.61.2) mais 2.50.3-2+deb9u2 est installé
    libappstreamqt2 : Dépend: libglib2.0-0 (>= 2.58) mais 2.50.3-2+deb9u2 est installé
    libboost-mpi-python1.62.0 : Dépend: python3 (< 3.6) mais 3.9.2-2 est installé
    libc-dev-bin : Dépend: libc6 (= 5.5.36) mais il n'est pas installable
    libgdk-pixbuf-xlib-2.0-0 : Dépend: libgdk-pixbuf-2.0-0 (>= 2.40.0) mais il n'est pas installable
    libgdk-pixbuf2.0-0 : Dépend: libgdk-pixbuf-2.0-0 (>= 2.40.0) mais il n'est pas installable
    libgdk-pixbuf2.0-bin : Dépend: libgdk-pixbuf-2.0-0 (>= 2.35.4) mais il n'est pas installable
    Dépend: libglib2.0-0 (>= 2.56.0) mais 2.50.3-2+deb9u2 est installé
    libgdk-pixbuf2.0-dev : Dépend: libgdk-pixbuf-2.0-dev (>= 2.40.0) mais il n'est pas installable
    Dépend: libgdk-pixbuf-xlib-2.0-dev (>= 2.40.2-2) mais il n'est pas installable
    libglib2.0-bin : Dépend: libglib2.0-0 (= 2.66.7-2) mais 2.50.3-2+deb9u2 est installé
    libglib2.0-dev : Dépend: libglib2.0-bin (= 2.50.3-2+deb9u2)
    libibus-1.0-5 : Dépend: libglib2.0-0 (>= 2.59.0) mais 2.50.3-2+deb9u2 est installé
    libkwaylandserver5 : Dépend: libegl1 mais il n'est pas installable
    libmailutils5 : Dépend: libmariadbclient18 (>= 5.5.36) mais il n'est pas installable

    libmariadbclient-dev : Dépend: libmariadbclient18 (= 10.1.48-0+deb9u1) mais il n'est pas installable
    libqt4-declarative : Dépend: libqtcore4 (= 4:4.8.7+dfsg-11+deb9u1) mais 4:4.8.7+dfsg-11 est installé
    libqt4-designer : Dépend: libqtcore4 (= 4:4.8.7+dfsg-11+deb9u1) mais 4:4.8.7+dfsg-11 est installé
    libqt4-dev : Dépend: libqtcore4 (= 4:4.8.7+dfsg-11+deb9u1) mais 4:4.8.7+dfsg-11 est installé
    Recommande: libqt4-opengl-dev (= 4:4.8.7+dfsg-11+deb9u1) mais il n'est pas installé
    libqt4-dev-bin : Dépend: libqtcore4 (= 4:4.8.7+dfsg-11+deb9u1) mais 4:4.8.7+dfsg-11 est installé
    libqt4-help : Dépend: libqtcore4 (= 4:4.8.7+dfsg-11+deb9u1) mais 4:4.8.7+dfsg-11 est installé
    libqt4-network : Dépend: libqtcore4 (= 4:4.8.7+dfsg-11+deb9u1) mais 4:4.8.7+dfsg-11 est installé
    libqt4-opengl : Dépend: libqtgui4 (= 4:4.8.7+dfsg-11) mais 4:4.8.7+dfsg-11+deb9u1 est installé
    libqt4-qt3support : Dépend: libqtcore4 (= 4:4.8.7+dfsg-11+deb9u1) mais 4:4.8.7+dfsg-11 est installé
    libqt4-script : Dépend: libqtcore4 (= 4:4.8.7+dfsg-11+deb9u1) mais 4:4.8.7+dfsg-11 est installé
    libqt4-scripttools : Dépend: libqtcore4 (= 4:4.8.7+dfsg-11+deb9u1) mais 4:4.8.7+dfsg-11 est installé
    libqt4-sql : Dépend: libqtcore4 (= 4:4.8.7+dfsg-11+deb9u1) mais 4:4.8.7+dfsg-11 est installé
    libqt4-sql-sqlite : Dépend: libqtcore4 (= 4:4.8.7+dfsg-11+deb9u1) mais 4:4.8.7+dfsg-11 est installé
    libqt4-svg : Dépend: libqtcore4 (= 4:4.8.7+dfsg-11+deb9u1) mais 4:4.8.7+dfsg-11 est installé
    libqt4-test : Dépend: libqtcore4 (= 4:4.8.7+dfsg-11+deb9u1) mais 4:4.8.7+dfsg-11 est installé
    libqt4-xml : Dépend: libqtcore4 (= 4:4.8.7+dfsg-11+deb9u1) mais 4:4.8.7+dfsg-11 est installé
    libqt4-xmlpatterns : Dépend: libqtcore4 (= 4:4.8.7+dfsg-11+deb9u1) mais 4:4.8.7+dfsg-11 est installé
    libqt5core5a : Casse: libqtcore4 (= 0.2.4) mais il n'est pas installable
    nfs-kernel-server : Dépend: libtirpc1 (>= 0.2.4) mais il n'est pas installable
    plasma-framework : Dépend: libegl1 mais il n'est pas installable
    plasma-workspace : Dépend: libegl1 mais il n'est pas installable
    Recommande: libpam-kwallet5 (>= 5.14) mais 5.8.4-1+deb9u2 est installé
    Recommande: powerdevil (>= 4:5.14) mais 4:5.8.4-1 est installé

    python3-apt : Dépend: python3 (< 3.6) mais 3.9.2-2 est installé
    python3-brlapi : Dépend: python3 (< 3.6) mais 3.9.2-2 est installé
    python3-crypto : Dépend: python3 (< 3.6) mais 3.9.2-2 est installé
    python3-cups : Dépend: python3 (< 3.6) mais 3.9.2-2 est installé
    python3-dbus : Dépend: python3 (= 3.9.2-0~) mais il n'est pas installable
    python3-gdal : Dépend: python3 (< 3.6) mais 3.9.2-2 est installé
    python3-gi : Dépend: python3 (< 3.6) mais 3.9.2-2 est installé
    python3-netifaces : Dépend: python3 (< 3.6) mais 3.9.2-2 est installé
    python3-pil : Dépend: python3 (< 3.6) mais 3.9.2-2 est installé
    python3-psutil : Dépend: python3 (< 3.6) mais 3.9.2-2 est installé
    python3-pycurl : Dépend: python3 (= 0.2.5-1.2~) mais il n'est pas installable
    ure : Dépend: uno-libs3 (= 5.2.7-1+deb9u11) mais il n'est pas installé

    E: Erreur, pkgProblem::Resolve a généré des ruptures, ce qui a pu être causé par les paquets devant être gardés en l'état.
    E: Impossible de corriger les dépendances
    francois@petitNoir:~$

    Je vois bien qu'il y a deja 2 problemes principaux sur libqtcore4 et python3
    J'ai tenté un dpkg forcedowngrade d'un paquet libqtcore4_4.8.7_dfsg-11_amd64.deb trouve sur https://pkgs.org/download/libqtcore4
    mais ca ne colle pas. Quant à python3 je ne vois pas du tout quoi faire.
    Donc après reboot, je me retrouve avec un kde cassé meme si j'ai acces à kate et a des consoles.
    Mais pas de networkManager donc pas de reseau a priori.

    Je suis un peu désespéré.

    Si quelqu'un a des idées pour me sortir de ce mauvais pas, elles seraient bienvenues.

    Merci de votre aide

    Francois

    • Sandstorm dit :

      Salut !
      Je ne sais pas d'où sors ton Bullseye car c'est la version après Buster...
      Si tu n'as plus de réseau, c va être assez compliqué, à part peut être démarrer sur un system live, chrooter l'environnement et tenter peut etre un apt full-upgrade. Mais au préalable sauvegarde tes données avant... 😉

  7. Francois Guel dit :

    Bonjour,

    Merci Sandstorm pour ta réponse.

    Bien sûr que Bullseye est la version d'apres !
    Ma question est bien de savoir comment c'est possible (facultatif) et comment réparer (impératif si nécessaire) !

    D'autre part, j'ai retabli le reseau en mode console.
    De plus par
    $ kstart5 plasmashell
    j'ai recuperé le bureau et une partie de kde (4 bureaux/barre de menu) mais pas le menu KDE, ni certaines applis, ni les navigateurs internet
    Les commandes apt rendent toutes compte des memes problemes d'inconsistance (voir mon precedent post)
    dpkg --list rend un nombre important de paquets iU, je peux te diffuser ce fichier si cela pouvait aider
    apt show linux-image-amd64
    donne bien la version 4.19+105+deb10u9
    apt full-upgrade donne egalement la meme chose et invite a nouveau a faire un fix-broken install qui donne le meme resultat

    Merci de ton aide.

    • Sandstorm dit :

      Salut ! Comment est ton sources.list à l'heure actuelle ? As tu viré bullseye ? En commentant la ligne ou en remplaçant bullseye buster, tente un petit apt-get -f dist-upgrade.
      Et bien sur à chaque fois que tu modifie ton sources.list, un petit apt-get update 🙂

  8. Francois Guel dit :

    Salut,

    Mon sources.list n'a pas bouge et n'a JAMAIS contenu bullseye mais bien BUSTER
    Je n'y ai pas touché et il contient ce que j'ai dit dans mon 1er post.

    apt-get -f dist-upgrade ne donne rien de plus que la liste des dependances non satisfaites connues
    apt-get build-dep kinfocenter
    donne : impossible de trouver une source de paquet pour kinfocenter - c'est pareil pour "python3"

  9. Lionel 17 dit :

    Bonsoir,
    Mon Debian 9 donnait vraiment des signes de fatigues au point de ne plus pouvoir ouvrir Gmail... J'ai suivi ta procédure pas à pas et c'est que du bonheur .
    Il faut compter 3 bonnes heures pour faire ça proprement.
    Merci beaucoup, c'est clair précis et concis. Bravo un bon tuto.

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 comment les données de vos commentaires sont utilisées.