Table des matières
Nous vous suggérons, avant la mise à niveau, de lire les informations du Chapitre 5, Problèmes à connaître pour Bookworm. Ce chapitre couvre des problèmes potentiels qui ne sont pas directement liés au processus de mise à niveau, mais qu'il est important de connaître avant de commencer.
Avant de mettre à niveau le système, il est fortement conseillé de faire une sauvegarde complète ou, du moins, une sauvegarde des données et des informations de configuration que vous ne pouvez pas vous permettre de perdre. Les outils de mise à niveau sont tout à fait fiables, mais une panne matérielle au milieu de la mise à niveau peut fortement endommager le système.
Ce que vous devriez principalement sauvegarder est le contenu des
répertoires /etc
, /var/lib/dpkg
,
/var/lib/apt/extended_states
et la sortie de :
$ dpkg --get-selections '*' # (les guillemets sont importants)
Si vous utilisez aptitude pour gérer les paquets du
système, vous devriez aussi sauvegarder
/var/lib/aptitude/pkgstates
.
Le processus de mise à niveau en lui-même ne modifie rien dans le répertoire
/home
. Cependant, certaines applications (par exemple,
des parties de la suite Mozilla et les environnements de bureau GNOME et
KDE) sont connues pour écraser des paramètres utilisateur existants avec de
nouvelles valeurs par défaut quand une nouvelle version de l'application est
lancée pour la première fois par un utilisateur. Par précaution, vous pouvez
faire une sauvegarde des fichiers et répertoires cachés (les
« dotfiles ») dans les répertoires personnels des
utilisateurs. Vous pouvez également informer les utilisateurs de ce
problème.
Toutes les opérations d'installation de paquets doivent être exécutées avec
les privilèges du superutilisateur, vous devez donc soit vous connecter en
tant que root
, soit utiliser su ou
sudo pour obtenir les droits nécessaires.
Il existe quelques conditions préalables à la mise à niveau ; vous devriez les vérifier avant d'effectuer réellement la mise à niveau.
Il est sage d'informer à l'avance tous les utilisateurs que vous planifiez une mise à niveau, même si les utilisateurs accédant au système par connexion ssh ne devraient pas remarquer grand-chose durant la mise à niveau et devraient pouvoir continuer à travailler.
Si vous voulez prendre des précautions supplémentaires, sauvegardez ou
démontez la partition /home
avant la mise à niveau.
Vous devrez probablement faire une mise à niveau du noyau lors de la mise à niveau vers Bookworm, un redémarrage sera donc normalement nécessaire. En général, celui-ci a lieu à la fin de la mise à niveau.
Certains services fournis par le système peuvent être associés à des paquets concernés par une mise à niveau. Dans ce cas, ces services seront interrompus lorsque les paquets correspondants seront remplacés et configurés. Pendant ce temps, ces services seront indisponibles.
Le temps d'arrêt de ces services va dépendre du nombre de paquets mis à niveau sur le système et du temps mis par l'administrateur système pour répondre aux possibles questions de configuration posées lors de la mise à niveau. Veuillez noter que si le processus de mise à niveau est laissé sans surveillance et que le système demande une information à un moment de la mise à niveau, il y a de grandes chances que des services soient ensuite indisponibles[1] pour une longue durée.
Si le système devant être mis à niveau fournit des services critiques pour vos utilisateurs ou le réseau[2], vous pouvez réduire le temps d'arrêt en faisant une mise à niveau minimale du système (consultez Section 4.4.5, « Mise à niveau minimale du système »), puis une mise à niveau du noyau et un redémarrage, et ensuite une mise à niveau des paquets fournissant vos services critiques. Mettez-les à niveau avant de lancer la mise à niveau totale (Section 4.4.6, « Mettre à niveau le système ») pour vous assurer que ces services critiques sont lancés et sont disponibles pendant la mise à niveau, et réduisez ainsi leur temps d'arrêt.
Bien que Debian essaie d'assurer que votre système puisse être redémarré à tout moment, il y a toujours un risque que vous rencontriez des problèmes lors du redémarrage du système après la mise à niveau. Des problèmes potentiels connus sont documentés dans les chapitres de ces notes de publication.
Pour cette raison, il est raisonnable de s'assurer que vous pourrez récupérer le système s'il ne redémarrait pas, ou, pour les systèmes gérés à distance, si la connexion au réseau échouait.
Si vous effectuez une mise à niveau à distance par un lien ssh, il est recommandé de prendre toutes les précautions nécessaires pour pouvoir accéder au serveur par un terminal série distant. Il est possible qu'après la mise à niveau du noyau et le redémarrage, vous deviez corriger la configuration du système depuis une console locale. Par ailleurs, si le système est redémarré accidentellement au milieu de la mise à niveau, il est possible que vous deviez utiliser une console locale pour réparer le système.
Comme premier secours, nous recommandons généralement d'utiliser le mode de secours (« rescue mode ») de l'installateur Debian de Bookworm. L'avantage d'utiliser l'installateur est que vous pouvez choisir l'option qui convient le mieux à votre situation parmi ses nombreuses méthodes d'installation. Pour plus d'informations, veuillez consulter la section « Récupérer un système cassé » du chapitre 8 du manuel d'installation et la FAQ de l'installateur Debian.
Si cela échoue, vous aurez besoin d'une autre méthode pour amorcer le système et le réparer. Une option est d'utiliser une image de récupération spéciale ou une image d’installation autonome. Après avoir démarré à partir de ce support, vous devriez pouvoir monter le système de fichiers racine et effectuer un chroot dans celui-ci pour analyser et corriger le problème.
Le paquet initramfs-tools
fournit un
interpréteur de commande de débogage[3]
dans les initrd qu'il génère. Si, par exemple, l'initrd ne peut pas monter
le système de fichiers racine, vous vous retrouverez dans cet interpréteur
de commande de débogage. Celui-ci possède des commandes de base qui
permettent d'identifier l'origine du problème et peut-être de le corriger.
Les points de base à vérifier sont : la présence de fichiers de
périphériques corrects dans /dev
; les modules chargés
(cat /proc/modules
) ; la sortie de
dmesg pour des erreurs liées au chargement de pilotes. La
sortie de dmesg affichera également les fichiers de
périphériques qui ont été assignés aux disques ; vous devriez vérifier ces
points et les comparer à l'affichage de echo $ROOT
pour
vous assurer que le système de fichiers racine est sur le périphérique
attendu.
Si vous parvenez à corriger le problème, entrez exit
pour
arrêter l'interpréteur de commande de débogage et continuer le processus
d'amorçage au point où il avait échoué. Bien sûr, vous devrez également
corriger le problème sous-jacent et régénérer l'initrd afin d'éviter un
nouvel échec au prochain amorçage.
Si le démarrage échoue sous systemd, il est possible d'obtenir une invite de
commande de débogage pour l'utilisateur root en modifiant la ligne de
commande du noyau. Si le démarrage de base fonctionne, mais que certains
services ne parviennent pas à se lancer, il peut être utile d'ajouter
systemd.unit=rescue.target
aux paramètres du noyau.
Autrement, le paramètre du noyau
systemd.unit=emergency.target
vous fournira une invite de
commande pour l'utilisateur root dès que possible. Cependant, cela se
produira avant le montage du système de fichiers racine avec les permissions
de lecture et écriture. Vous devrez le monter manuellement avec :
# mount -o remount,rw /
Une autre approche consiste à activer le « shell de débogage
anticipé » de systemd grâce à
debug-shell.service
. Lors du prochain démarrage, ce
service ouvrira un shell de connexion root sur tty9 très tôt lors du
processus de démarrage. Ce service peut être activé avec le paramètre de
démarrage du noyau systemd.debug-shell=1
, ou être rendu
persistant avec systemctl enable debug-shell (dans ce
cas, il faudra le désactiver lorsque le débogage sera terminé).
De plus amples informations sur le débogage d'un démarrage cassé sous systemd sont disponibles dans l'article Freedesktop.org Diagnosing Boot Problems.
Important | |
---|---|
Si vous utilisez des services VPN (par exemple |
Pour avoir une marge de sécurité supplémentaire lors des mises à niveau à distance, nous vous suggérons d'exécuter les processus de mise à niveau dans la console virtuelle fournie par le programme screen qui permet de se reconnecter en cas de coupure et garantit que le processus de mise à niveau ne sera pas interrompu même si le processus de connexion à distance a été temporairement coupé.
Le processus de mise à niveau décrit dans ce chapitre a été conçu pour les systèmes sous Debian stable « pure ». APT contrôle ce qui est installé sur votre système. Si votre configuration d'APT mentionne des sources supplémentaires autres que Bullseye, ou si vous avez installé des paquets venant d’autres publications ou de sources tierces, alors pour assurer un processus de mise à niveau sûr, vous pourriez vouloir commencer par supprimer ces facteurs de complications.
Le principal fichier de configuration utilisé par APT pour décider depuis
quelles sources il devrait télécharger des paquets est
/etc/apt/sources.list
, mais il peut aussi utiliser des
fichiers situés dans le répertoire
/etc/apt/sources.list.d/
– consultez sources.list(5)
pour de plus amples détails. Si votre système utilise plusieurs fichiers de
liste de sources, alors vous devrez vous assurer qu'ils restent cohérents.
Seules les mises à niveau depuis Debian 11 (Bullseye) sont prises en charge. Affichez votre version de Debian avec :
$ cat /etc/debian_version
Merci de suivre les instructions dans les notes de publication de Debian 11 si vous devez mettre la machine à niveau vers Debian 11 d'abord.
Cette procédure suppose que le système a été mis à niveau jusqu'à la dernière révision de Bullseye. Si vous ne l'avez pas fait ou si vous n'en êtes pas certain, veuillez suivre les instructions en Section A.1, « Mettre à niveau le système Bullseye ».
Les rétroportages Debian (« backports ») permettent aux utilisateurs de Debian stable d’exécuter des versions de paquet plus à jour (avec quelques contreparties sur les tests et la prise en charge de la sécurité). L’équipe Debian Backports entretient un sous-ensemble de paquets de la prochaine publication de Debian, ajustés et recompilés pour être utilisés dans la publication actuelle de Debian stable.
Les paquets de bullseye-backports ont des numéros de version plus petits que ceux dans Bookworm et peuvent donc être mis à niveau vers Bookworm normalement, de la même manière que les paquets de Bullseye « purs », lors de la mise à niveau de la distribution. Même s’il n’y a aucun problème potentiel connu, les chemins de mise à niveau depuis les paquets rétroportés sont moins testés et impliquent par conséquent davantage de risques.
Attention | |
---|---|
Bien que les paquets rétroportés soient pris en charge, il n’existe pas de chemin de mise à niveau clair pour les rétroportages sloppy (qui utilisent les entrées source-list d’APT référençant bullseye-backports-sloppy). |
Comme dans la Section 4.2.10, « Sources non officielles », il est conseillé aux utilisateurs de supprimer les entrées bullseye-backports de leurs fichiers source-list d’APT avant la mise à niveau. Une fois celle-ci terminée, il est possible d’ajouter bookworm-backports.
Pour plus d’informations, consultez la page de wiki concernant les rétroportages.
Vous devriez vérifier si la base de données des paquets est prête avant de
procéder à la mise à niveau. Si vous utilisez un autre gestionnaire de
paquets tel que aptitude
ou
synaptic
, passez en revue toutes les
actions en attente. Un paquet programmé pour être installé ou supprimé peut
poser problème lors de la procédure de mise à niveau. Notez que la
correction d'un tel problème n'est possible que si les listes de sources
d'APT pointent encore vers bullseye et pas vers
stable ou bookworm ;
consultez la Section A.2, « Vérifier les fichiers source-list d'APT ».
Supprimer les paquets obsolètes avant la mise à niveau de votre système est une bonne idée. Ils pourraient ajouter des complications lors du processus de mise à niveau et peuvent présenter des risques de sécurité car ils ne sont plus maintenus.
Ci-dessous deux méthodes sont exposées pour trouver des paquets installés ne provenant pas de Debian, en utilisant apt ou apt-forktracer. Veuillez noter qu'aucune d'entre elles n'est précise à 100 % (par exemple, la méthode utilisant apt liste les paquets qui ont été autrefois fournis par Debian mais qui ne le sont plus maintenant, comme les anciens paquets de noyau).
$ apt list '?narrow(?installed, ?not(?origin(Debian)))' $ apt-forktracer | sort
Une mise à niveau précédente pourrait avoir laissé des copies inutilisées de fichiers de configuration, d’anciennes versions de fichiers de configuration, des versions fournies par des responsables de paquets, etc. Supprimer ces résidus de mises à niveau précédentes peut éviter des confusions. Trouvez ces fichiers inutiles avec :
# find /etc -name '*.dpkg-*' -o -name '*.ucf-*' -o -name '*.merge-error'
Si vous avez installé des microprogrammes non libres, il est recommandé
d’ajouter non-free-firmware
à votre sources-list
d’APT. Pour plus d’informations, veuillez consulter la Section 2.2, « Sections de l'archive » et la Section 5.1.1, «
Microprogrammes non libres déplacés vers leur composant propre dans
l'archive
».
Si vous avez ajouté la section proposed-updates
dans vos
listes de sources d'APT, il est conseillé de la supprimer avant de tenter la
mise à niveau. Il s'agit essentiellement d'une précaution pour éviter des
conflits possibles.
Si des paquets n’appartenant pas à Debian sont présents sur le système, vous devez savoir qu'ils peuvent être supprimés pendant la mise à niveau à cause de dépendances conflictuelles. Si ces paquets ont été installés par l'ajout d'une archive de paquets dans vos fichiers de liste de sources APT, vous devriez vérifier si cette archive propose également des paquets compilés pour Bookworm et changer la ligne de source en conséquence en même temps que les lignes de source pour les paquets Debian.
Certains utilisateurs peuvent avoir installé sur leur système Bullseye des versions non officielles rétroportées de paquets plus récentes que celles qui sont dans Debian. De tels paquets sont les plus susceptibles de poser problème lors d'une mise à niveau, car ils peuvent entraîner un conflit de fichiers[4]. La Section 4.5, « Problèmes possibles pendant une mise à niveau » donne quelques informations sur la façon de gérer les conflits de fichiers s'ils se produisent.
Si vous avez configuré APT pour installer certains paquets d'une
distribution autre que stable (par exemple, de
testing), il se peut que vous deviez changer la
configuration d'épinglage APT (« APT pinning ») (stockée dans
/etc/apt/preferences
et
/etc/apt/preferences.d
) pour permettre la mise à niveau
de paquets vers les versions de la nouvelle version stable. Vous trouverez
plus d'informations sur l'épinglage dans apt_preferences(5).
APT a besoin de gpgv en version 2 ou ultérieure pour
vérifier les clés utilisées pour signer les publications de
Bookworm. Comme gpgv1
satisfait
techniquement la dépendance mais n’est utile que dans des circonstances
spéciales, les utilisateurs pourraient vouloir s’assurer que la version
correcte est utilisée avec :
# apt install gpgv
Quelle que soit la méthode utilisée pour mettre à niveau, il est recommandé de tester d'abord l'état de tous les paquets et de vérifier que tous les paquets se trouvent dans un état permettant la mise à niveau. La commande suivante vous indiquera tous les paquets qui sont dans l'état « Half-Installed » ou « Failed-Config », ainsi que ceux qui sont dans un état d'erreur.
$ dpkg --audit
Vous pouvez aussi vérifier l'état de tous les paquets du système en utilisant aptitude, ou avec des commandes comme :
$ dpkg -l | pager
ou :
# dpkg --get-selections '*' > ~/paquets-actuels.txt
Vous pouvez également utiliser apt.
# apt list --installed > ~/paquets-actuels.txt
Il est souhaitable d'enlever tous les blocages de paquets (on hold) avant de passer à la nouvelle version. Si un paquet essentiel pour la mise à niveau est bloqué, la mise à niveau va échouer.
$ apt-mark showhold
Si vous aviez modifié et recompilé un paquet localement, sans changer son nom et sans mettre d'époque (« epoch ») dans la version, vous devez le bloquer pour éviter qu'il ne soit mis à niveau.
Vous pouvez activer un blocage sur un paquet pour apt en utilisant :
# apt-mark hold nom_du_paquet
Remplacez hold
par unhold
pour
débloquer un paquet.
Si vous devez corriger quelque chose, il est préférable de vous assurer que vos fichiers de liste de sources d’APT font toujours référence à Bullseye comme expliqué en Section A.2, « Vérifier les fichiers source-list d'APT ».
Avant de commencer la mise à niveau, vous devez reconfigurer les listes de
sources d'APT (/etc/apt/sources.list
et les fichiers
situés dans /etc/apt/sources.list.d/
) pour ajouter les
sources pour Bookworm
et supprimer celles pour
Bullseye
.
APT prendra en compte tout paquet qui peut être trouvé grâce à chaque archive configurée et installera le paquet ayant le numéro de version le plus élevé, en donnant la priorité à la première entrée dans les fichiers. Ainsi, si vous avez plusieurs miroirs, indiquez d'abord un disque dur local, puis des CD, puis des miroirs distants.
Une version peut être référencée à la fois par son nom de code (par exemple,
bullseye
, bookworm
) et
par son nom d'état (c'est-à-dire oldstable,
stable, testing,
unstable). Se référer à une version par son nom de code
évite d'être surpris par une nouvelle version et c'est pour cette raison que
cette approche a été choisie ici. Bien sûr, vous devez surveiller vous-même
les annonces des nouvelles versions. Si vous utilisez les noms d'état, vous
verrez simplement une grande quantité de mises à jour de paquets disponibles
dès qu'une publication a eu lieu.
Debian fournit deux listes de diffusion d'annonces pour vous aider à rester à jour au sujet des informations importantes liées aux publications de Debian :
En souscrivant à la
liste de diffusion des annonces de Debian, vous recevrez une
notification à chaque nouvelle publication de Debian. Par exemple quand
Bookworm
passe de testing
à
stable
.
En souscrivant à la liste des annonces de sécurité de Debian, vous recevrez une notification à chaque publication d'une annonce de sécurité de Debian.
Sur les nouvelles installations, le comportement par défaut d'APT est d'utiliser le service CDN pour APT de Debian, ce qui assure que les paquets sont téléchargés automatiquement depuis un serveur de proximité en terme de réseau. Comme il s'agit d'un service relativement récent, les anciennes installations pourraient avoir une configuration pointant toujours vers l'un des principaux serveurs Debian sur Internet ou un des miroirs. Si vous ne l'avez pas encore fait, il est recommandé d'utiliser le service CDN dans votre configuration APT.
Pour utiliser le service CDN, ajoutez une ligne comme celle-ci dans votre
configuration de sources APT (en supposant que vous utilisiez
main
et contrib
) :
deb https://deb.debian.org/debian bookworm main contrib
Après avoir ajouté les nouvelles sources, commentez les lignes
« deb
» préexistantes en plaçant des
caractères #
au début des lignes.
Cependant, si vous avez de meilleurs résultats en utilisant un miroir spécifique proche de vous en terme de réseau, cette option est toujours disponible.
Les adresses des miroirs Debian se trouvent à https://www.debian.org/distrib/ftplist (regardez dans la section « liste complète des miroirs »).
Par exemple, supposons que le miroir Debian le plus proche soit
http://mirrors.kernel.org
. Si vous consultez ce miroir avec
un navigateur web, vous verrez que les répertoires principaux sont organisés
comme ceci :
http://mirrors.kernel.org/debian/dists/bookworm/main/binary-s390x/... http://mirrors.kernel.org/debian/dists/bookworm/contrib/binary-s390x/...
Pour configurer APT pour utiliser un miroir donné, ajoutez une ligne comme
celle-ci (à nouveau, en supposant que vous utilisiez main
et contrib
) :
deb http://mirrors.kernel.org/debian bookworm main contrib
Notez que « dists
» est ajouté automatiquement
et que les paramètres qui suivent le nom de version donnent accès à
plusieurs répertoires.
À nouveau, après avoir ajouté vos nouvelles sources, désactivez les entrées d'archives préexistantes.
Plutôt que d'utiliser des miroirs distants, vous pouvez modifier les listes de sources d'APT pour utiliser un miroir sur un disque local (éventuellement monté par NFS).
Par exemple, le miroir de paquets peut être sous
/var/local/debian/
, et avoir des répertoires principaux
tels que :
/var/local/debian/dists/bookworm/main/binary-s390x/... /var/local/debian/dists/bookworm/contrib/binary-s390x/...
Pour utiliser ce miroir avec apt
,
ajoutez cette ligne au fichier sources.list
:
deb file:/var/local/debian bookworm main contrib
Notez que « dists
» est ajouté automatiquement
et que les paramètres qui suivent le nom de version donnent accès à
plusieurs répertoires.
Après avoir ajouté les nouvelles sources, commentez les lignes
« deb
» préexistantes dans les listes de
sources d'APT en plaçant des caractères #
au début des
lignes.
Si vous ne voulez utiliser que les DVD (ou CD ou
Blu-ray), commentez les lignes « deb
»
existantes dans les listes de sources d'APT en plaçant des
#
au début des lignes.
Assurez-vous de la présence d'une ligne dans /etc/fstab
qui autorise le montage du CD au point de montage
/media/cdrom
. Par exemple, si
/dev/sr0
est le lecteur de CD, le fichier
/etc/fstab
devrait contenir une ligne comme celle-ci :
/dev/sr0 /media/cdrom auto noauto,ro 0 0
Remarquez qu'il ne doit pas y avoir d'espace entre les
mots noauto,ro
dans la quatrième colonne.
Pour vérifier que cela fonctionne, insérez un CD et essayez d'exécuter :
# mount /media/cdrom # cela montera le CD au point de montage # ls -alF /media/cdrom # cela devrait afficher le répertoire racine du CD # umount /media/cdrom # cela démontera le CD
Puis, lancez :
# apt-cdrom add
pour chaque CD binaire Debian en votre possession, afin d'ajouter ses données dans la base d'APT.
La méthode recommandée pour mettre à niveau depuis les versions précédentes de Debian est d'utiliser l'outil de gestion de paquets apt.
Note | |
---|---|
apt est conçu pour une utilisation interactive et ne devrait pas être utilisé dans des scripts. Les scripts devraient utiliser apt-get qui a une sortie stable plus adaptée à l'analyse automatique. |
N'oubliez pas de monter les partitions requises (notamment les partitions
racine et /usr
) en lecture et écriture, avec une
commande du type :
# mount -o remount,rw /point_montage
Puis, vérifiez à nouveau que les sources d'APT (dans
/etc/apt/sources.list
et les fichiers situés dans
/etc/apt/sources.list.d/
) se réfèrent soit à
« bookworm
», soit à
« stable
». Il ne doit y avoir aucune source
pointant vers Bullseye.
Note | |
---|---|
Les lignes de source pour un CD font souvent référence à
« |
Il est fortement recommandé d'utiliser le programme /usr/bin/script pour enregistrer une transcription de la session de mise à niveau. Ainsi, quand un problème survient, vous avez un enregistrement de ce qui s'est passé, et vous pouvez fournir les informations exactes pour un rapport de bogue. Pour démarrer un enregistrement, saisissez :
# script -t 2>~/upgrade-bookwormétape
.time -a ~/upgrade-bookwormétape
.script
ou quelque chose d'équivalent. Si vous devez utiliser à nouveau le script
d'enregistrement (par exemple suite à un redémarrage), utilisez une nouvelle
valeur pour étape
afin d'indiquer quelle étape
vous enregistrez. Ne mettez pas le fichier d'enregistrement dans un
répertoire temporaire tel que /tmp
ou
/var/tmp
(les fichiers de ces répertoires peuvent être
détruits pendant la mise à niveau ou pendant un redémarrage).
Le fichier d'enregistrement vous permettra également de revoir les
informations qui ont défilé. Basculez simplement sur la deuxième console (en
utilisant Alt+F2) et, après
la connexion, utilisez less -R
~root/upgrade-bookworm
pour voir le fichier.
etape
.script
Après avoir terminé la mise à niveau, vous pouvez stopper l'enregistrement
en entrant exit
à l'invite de commande.
apt va également journaliser les états des paquets
modifiés dans /var/log/apt/history.log
et la sortie du
terminal dans /var/log/apt/term.log
. De plus,
dpkg va journaliser tous les changements d’état des
paquets dans /var/log/dpkg.log
. Si vous utilisez
aptitude, cette commande journalisera également les
changements d’état dans /var/log/aptitude
.
Si vous avez utilisé l'option -t de script, vous pouvez utiliser le programme scriptreplay pour rejouer la session entière :
# scriptreplay ~/upgrade-bookwormétape
.time ~/upgrade-bookwormétape
.script
La liste des paquets disponibles pour la nouvelle version doit tout d'abord être récupérée, avec cette commande :
# apt update
Note | |
---|---|
Les utilisateurs de apt-secure pourraient avoir des problèmes lors de l'utilisation de aptitude ou apt-get. Dans ce cas, apt-get update --allow-releaseinfo-change peut être utilisé. |
Avant de faire la mise à niveau complète du système, telle qu'elle est
décrite en Section 4.4.6, « Mettre à niveau le système », vous devez vous assurer d'avoir
suffisamment d'espace disque. En effet, tous les paquets nécessaires à
l'installation sont stockés dans
/var/cache/apt/archives
(et dans le sous-répertoire
partial/
pendant le téléchargement). Vous devez donc
vous assurer d'avoir suffisamment de place sur la partition qui contient
/var/
. Après le téléchargement, vous aurez probablement
encore besoin de plus d'espace disque sur les autres partitions de système
de fichiers pour pouvoir installer à la fois les paquets mis à niveau (qui
peuvent contenir des binaires plus gros ou davantage de données) et les
nouveaux paquets. Si l'espace disque vient à manquer, la mise à niveau sera
incomplète, ce qui peut rendre le système difficile à récupérer.
Le programme apt peut afficher des informations détaillées à propos de l'espace disque nécessaire à l'installation. Vous pouvez obtenir cette estimation avant d'effectuer vraiment la mise à niveau avec la commande :
# apt -o APT::Get::Trivial-Only=true full-upgrade [ ... ] XXX paquets mis à jour, XXX nouvellement installés, XXX à enlever et XXX non mis à jour. Il est nécessaire de télécharger xx,x Mo d'archives. Après dépaquetage, AAA Mo d’espace supplémentaire seront utilisés.
Note | |
---|---|
Exécuter cette commande au début du processus de mise à niveau peut provoquer une erreur pour les raisons décrites dans les sections suivantes. Dans ce cas, vous devez attendre d'avoir effectué la mise à niveau minimale du système comme décrit en Section 4.4.5, « Mise à niveau minimale du système » avant d'exécuter cette commande pour estimer l'espace disque nécessaire. |
Si vous n'avez pas assez d'espace disque pour la mise à niveau, apt vous enverra un message comme :
E: Vous n'avez pas assez d'espace disponible dans /var/cache/apt/archives/.
Si vous n'avez pas assez d'espace disque pour la mise à niveau, assurez-vous d'en libérer. Vous pouvez :
Supprimer les paquets qui ont été téléchargés auparavant (dans
/var/cache/apt/archives
). Nettoyer le cache des paquets
avec apt clean, cela supprimera tous les paquets
téléchargés auparavant ;
Supprimer les paquets oubliés. Si vous avez utilisé aptitude ou apt pour installer manuellement des paquets dans Bullseye, le programme aura gardé la trace de ces paquets ; ainsi, quand un paquet est supprimé, le programme peut marquer comme redondants les paquets installés par le seul jeu des dépendances et qui ne sont plus nécessaires. Ils ne marquent pas pour la suppression les paquets que vous avez installés, au contraire de ceux qui ont été installés automatiquement par les dépendances. Pour supprimer les paquets installés automatiquement et qui ne sont plus utilisés, tapez :
# apt autoremove
Vous pouvez également utiliser deborphan, debfoster ou cruft pour trouver les paquets redondants. Ne supprimez pas aveuglément les paquets que ces outils présentent, particulièrement si vous utilisez des options non standard agressives, car ils sont susceptibles de produire des faux positifs. Il est hautement recommandé d'examiner manuellement les paquets suggérés à la suppression (c'est-à-dire leurs contenu, taille et description) avant de les supprimer.
Supprimer les paquets qui prennent trop d'espace et qui ne sont pas
actuellement nécessaires (vous pourrez les réinstaller après la mise à
niveau). Si popularity-contest
est
installé, vous pouvez utiliser popcon-largest-unused pour
faire la liste des paquets occupant le plus d'espace. Vous pouvez afficher
les paquets qui prennent le plus de place avec dpigs
(disponible dans le paquet debian-goodies
) ou avec wajig
(en lançant wajig size
). Ils peuvent également être
trouvés avec aptitude
. Lancez
aptitude en mode terminal complet, choisissez
→ , tapez l puis
~i
, tapez S puis
~installsize
, ce qui créera une liste pratique pour
travailler.
Supprimer les traductions et les fichiers de localisation du système, s'ils
ne sont pas nécessaires. Vous pouvez installer le paquet localepurge
et le configurer de manière à ce
qu'un jeu restreint de paramètres régionaux (« locales ») soit conservé sur
le système. Cela réduira la place occupée dans
/usr/share/locale
.
Déplacer temporairement vers un autre système les journaux système résidant
sous/var/log/
(ou les supprimer définitivement).
Utiliser un répertoire /var/cache/apt/archives
temporaire. Vous pouvez utiliser un cache temporaire depuis un autre système
de fichiers, un périphérique de stockage par USB, un
disque dur temporaire, un système de fichiers déjà utilisé, etc.
Note | |
---|---|
N'utilisez pas de montage NFS, car la connexion réseau pourrait être interrompue au cours de la mise à niveau. |
Par exemple, si une clé USB est montée sur
/media/cleusb
:
supprimez les paquets téléchargés lors d'une précédente installation :
# apt clean
copiez le répertoire /var/cache/apt/archives
sur le
disque USB :
# cp -ax /var/cache/apt/archives /media/cleusb/
montez le répertoire de cache temporaire à la place de l'actuel :
# mount --bind /media/cleusb/archives /var/cache/apt/archives
après la mise à niveau, rétablissez le répertoire
/var/cache/apt/archives
initial :
# umount /media/cleusb/archives
supprimez le répertoire subsistant
/media/cleusb/archives
.
Vous pouvez créer le répertoire de cache temporaire dans n'importe quel système de fichiers monté sur le système.
Effectuez une mise à niveau minimale (consultez la Section 4.4.5, « Mise à niveau minimale du système ») ou partielle suivie par une mise à niveau complète. Cela vous permettra de mettre à niveau partiellement le système, et de nettoyer le cache avant la mise à niveau complète.
Notez que pour supprimer des paquets sans dommage, il est conseillé de changer vos listes de sources d'APT pour pointer vers bullseye, comme décrit en Section A.2, « Vérifier les fichiers source-list d'APT ».
Comme apt pourrait avoir besoin d’arrêter temporairement
des services s’exécutant sur votre ordinateur, arrêter les services de
monitoring qui peuvent relancer d’autres services interrompus est
probablement une bonne idée pendant la mise à niveau. Dans Debian,
monit
est un exemple d’un tel
service.
Il est possible que le lancement d'une mise à niveau complète (décrite ci-dessous) supprime un grand nombre de paquets que vous voudriez garder. Nous recommandons donc une action en deux temps : commencer par une mise à niveau minimale pour éviter ces conflits, puis faire une mise à niveau totale (consultez la Section 4.4.6, « Mettre à niveau le système »).
Pour ce faire, exécutez d'abord :
# apt upgrade --without-new-pkgs
Cette commande met à niveau les paquets qui peuvent l'être sans entraîner l'installation ou la suppression d'autres paquets.
La mise à niveau minimale peut aussi être utilisée sur un système limité en taille, sur lequel une mise à niveau complète prendrait trop d'espace.
Si le paquet apt-listchanges
est
installé avec sa configuration par défaut, il affichera de manière
interactive les informations importantes sur les paquets mis à niveau après
leur téléchargement. Il est nécessaire d'utiliser la touche
q une fois ces informations lues afin de quitter
l'affichage interactif et poursuivre la mise à niveau.
Vous êtes maintenant prêt à continuer avec la partie principale de la mise à niveau. Exécutez :
# apt full-upgrade
Cette commande effectue une mise à niveau complète du système, en installant les versions les plus récentes de tous les paquets, et en résolvant tous les changements possibles de dépendances entre paquets des différentes versions. Si nécessaire, elle installe de nouveaux paquets (habituellement de nouvelles versions de bibliothèques, ou des paquets ayant changé de nom), et retire les paquets obsolètes en conflit.
Lorsque la mise à niveau se fait à partir d'un ensemble de CD, DVD ou BD, on vous demandera d'insérer d'autres disques à plusieurs moments de la mise à niveau. Vous pourriez devoir insérer plusieurs fois le même disque. Cela est dû aux interdépendances de paquets réparties sur plusieurs supports.
Les paquets déjà installés ayant une nouvelle version, mais qui ne peuvent
être installés sans modifier l'état d'un autre paquet, seront laissés dans
leur version actuelle (et affichés comme retenus — « held
back »). Cela peut être résolu soit en utilisant
aptitude et en choisissant d'installer ces paquets, soit
en essayant apt install
.
paquet
Les parties suivantes décrivent les problèmes connus pouvant survenir lors d'une mise à niveau vers Bookworm.
Dans certains cas, l'étape apt full-upgrade peut échouer après le téléchargement des paquets avec :
E: Impossible de faire une configuration immédiate sur 'paquet
'. Veuillez consulter man 5 apt.conf à la section APT::Immediate-Configure pour plus de précisions.
Si cela se produit, exécuter apt full-upgrade -o APT::Immediate-Configure=0 à la place devrait permettre la mise à niveau.
Une autre possibilité pouvant permettre de contourner ce problème consiste à ajouter temporairement des sources pour bullseye et bookworm dans vos listes de sources d'APT puis d'exécuter la commande apt update.
La mise à niveau vers Bookworm peut demander la suppression de paquets sur le système. Leur liste exacte dépendra des paquets installés sur le système. Ces notes de publication donnent des conseils généraux sur la méthode à utiliser, mais en cas de doute, il est recommandé d'examiner les suppressions de paquets proposées par chacune des méthodes avant de les effectuer réellement. Pour plus d'informations au sujet des paquets devenus obsolètes dans Bookworm, veuillez consulter Section 4.8, « Paquets obsolètes ».
Il est parfois nécessaire d'activer l'option d'APT
APT::Force-LoopBreak
pour pouvoir temporairement retirer
un paquet essentiel à cause de boucles
« Conflicts/Pre-Depends ». apt vous alertera à
ce propos et interrompra la mise à niveau. Vous pouvez contourner ce
problème en passant l'option -o APT::Force-LoopBreak=1
sur la ligne de commande d'apt.
Il est possible que la structure de dépendances d'un système soit tellement défectueuse qu'elle requière une intervention manuelle. Habituellement, cela signifie qu'il faut utiliser apt ou :
# dpkg --remove nom_du_paquet
pour éliminer certains des paquets en cause, ou :
# apt -f install # dpkg --configure --pending
Dans certains cas extrêmes, vous pourriez devoir forcer une réinstallation à l'aide d'une commande comme :
# dpkg --install /chemin/vers/nom_du_paquet.deb
Les conflits de fichiers ne devraient pas se produire si vous mettez à niveau depuis un système Bullseye « pur », mais ils peuvent se produire si des rétroportages non officiels sont installés. Un conflit de fichiers entraînera une erreur de ce type :
Préparation du remplacement de<paquet-toto>
(en utilisant<fichier-paquet-toto>
) ... dpkg: erreur de traitement de<paquet-toto>
(--install): tentative de remplacement de «<un-nom-de-fichier>
», qui appartient aussi au paquet<paquet-titi>
dpkg-deb: sous-processus paste tué par le signal (Broken pipe) Des erreurs ont été rencontrées pendant l'exécution :<paquet-toto>
Vous pouvez tenter de résoudre un conflit de fichiers en forçant la suppression du paquet mentionné sur la dernière ligne du message d'erreur :
# dpkg -r --force-depends nom_du_paquet
Après cela, vous devriez être en mesure de continuer la mise à niveau, en utilisant les commandes d'apt précédemment décrites.
Durant la mise à niveau, on vous posera des questions pour configurer ou
reconfigurer de nombreux paquets. Quand on vous demandera si des fichiers du
répertoire /etc/init.d
ou le fichier
/etc/manpath.config
doivent être remplacés par la
version du responsable du paquet, il est généralement nécessaire de répondre
« oui » pour assurer la cohérence du système. Vous pouvez
toujours revenir aux versions précédentes, puisqu'elles sont sauvegardées
avec une extension .dpkg-old
.
Si vous n'êtes pas certain de ce qu'il faut faire, notez le nom du paquet ou du fichier et examinez le problème plus tard. Vous pouvez chercher dans le fichier d'enregistrement pour revoir les informations qui étaient à l'écran lors de la mise à niveau.
Si vous utilisez le système depuis la console locale, il est possible qu'à certains moments de la mise à niveau la console passe à une vue différente, et que la mise à niveau du système ne soit plus observable. Cela peut par exemple être le cas pour les systèmes qui ont une interface graphique, quand le gestionnaire de session est relancé.
Pour revenir à la console traitant le processus de mise à niveau, utilisez les touches Ctrl+Alt+F1 (si vous avez une interface de connexion graphique) ou Alt+F1 (si vous avez une console texte locale) pour revenir au terminal virtuel 1. Remplacez F1 avec la touche Fx où x correspond au numéro du terminal sur lequel se déroule la mise à niveau. Vous pouvez aussi utiliser Alt+flèche gauche ou Alt+flèche droite pour passer d'un terminal en mode texte à un autre.
Cette section explique comment mettre à niveau le noyau et identifie les
problèmes potentiels liés à cette mise à niveau. Vous pouvez soit installer
l'un des paquets linux-image-*
fournis dans Debian ou compiler un noyau personnalisé à partir des sources.
Veuillez noter que beaucoup d'informations dans cette section sont basées
sur l'hypothèse que vous utilisez l'un des noyaux modulaires de Debian, avec
les paquets initramfs-tools
et
udev
. Si vous choisissez d'utiliser
un noyau personnalisé qui ne nécessite pas d'initrd ou si vous utilisez un
générateur d'initrd différent, certaines informations peuvent ne pas vous
concerner.
Quand vous faites une mise à niveau de Bullseye vers Bookworm, il est fortement recommandé d'installer un métapaquet linux-image-*, si cela n’avait pas été déjà fait. Ces métapaquets vont automatiquement récupérer une nouvelle version par le processus de mise à niveau. Vous pouvez vérifier cela en exécutant :
$ dpkg -l 'linux-image*' | grep ^ii | grep -i meta
Si cela ne donne rien, vous devez alors soit installer un nouveau paquet linux-image vous-même ou installer un métapaquet linux-image. Pour voir la liste des métapaquets linux-image disponibles, exécutez :
$ apt-cache search linux-image- | grep -i meta | grep -v transition
Si vous ne savez pas quel paquet sélectionner, exécutez uname
-r
et recherchez un paquet avec un nom similaire. Par exemple, si
« 4.9.0-8-amd64
» apparaît, il est recommandé
d'installer linux-image-amd64
. Vous
pouvez également utiliser apt pour voir une description
longue de chaque paquet. Cela peut vous aider à choisir le meilleur paquet
disponible. Par exemple :
$ apt show linux-image-amd64
Vous pouvez alors installer le paquet choisi en utilisant la commande
apt install
. Une fois ce nouveau noyau installé, vous
devriez redémarrer dès que possible afin de profiter des améliorations
fournies par la nouvelle version du noyau. Néanmoins, veuillez consulter
Section 5.1.16, « Choses à faire avant de redémarrer après la mise à niveau » avant de lancer le premier
redémarrage suivant la mise à niveau.
Pour les plus courageux, il existe un moyen facile pour compiler votre
propre noyau sous Debian. Installez les sources du noyau fournies pas le
paquet linux-source
. Vous pouvez
utiliser la cible deb-pkg
du fichier Makefile fourni dans
les sources pour construire un paquet binaire. Plus d'informations sont
disponibles dans le Manuel du noyau
Linux de Debian, qui peut également être trouvé dans le paquet
debian-kernel-handbook
.
Si possible, vous devriez mettre à niveau le noyau (par le paquet idoine)
séparément de la mise à niveau (full-upgrade
) principale
pour réduire les risques d'avoir un système temporairement non
amorçable. Notez que cela devrait être effectué uniquement après le
processus de mise à niveau minimal décrit en Section 4.4.5, « Mise à niveau minimale du système ».
Après la mise à niveau, il y a plusieurs choses que vous pouvez faire pour préparer la prochaine version.
Supprimez tous les paquets nouvellement redondants ou obsolètes comme décrits en Section 4.4.3, « Assurez-vous d'avoir suffisamment d'espace disque pour la mise à niveau » et Section 4.8, « Paquets obsolètes ». Vous devriez contrôler les fichiers de configuration qu'ils utilisent et envisager de purger les paquets pour supprimer leurs fichiers de configuration. Veuillez également consulter Section 4.7.1, « Purger les paquets supprimés ».
Il est généralement conseillé de purger les paquets supprimés. C'est particulièrement vrai si ceux-ci ont été supprimés lors d'une mise à niveau précédente (par exemple la mise à niveau vers Bullseye) ou s'ils ont été fournis par des vendeurs tiers. En particulier, les anciens scripts init.d sont connus pour causer des problèmes.
Attention | |
---|---|
En général, purger un paquet purgera également ses fichiers de journaux, donc vous pourriez vouloir les sauvegarder d'abord. |
La commande suivante affiche une liste de tous les paquets supprimés qui pourraient avoir laissé des fichiers de configuration sur le système (s'il y en a) :
$ apt list '~c'
Les paquets peuvent être supprimés en utilisant apt purge. En supposant que vous souhaitiez tous les purger en une seule fois, vous pouvez utiliser la commande suivante :
# apt purge '~c'
Avec Bookworm, plusieurs milliers de nouveaux paquets apparaissent, tandis que bon nombre d'anciens paquets présents dans Bullseye disparaissent. Il n'est pas prévu de procédure de mise à niveau pour ces paquets obsolètes. Bien que rien ne vous empêche de continuer à utiliser ces paquets si vous le désirez, le projet Debian arrête habituellement leur suivi de sécurité un an après la sortie de Bookworm[5], et n'assure normalement pas d'autre prise en charge dans l'intervalle. Il est recommandé de remplacer ces paquets par leurs alternatives disponibles quand elles existent.
Il y a plusieurs raisons pour lesquelles un paquet peut avoir été retiré de la distribution : il n'est plus maintenu en amont, il n'y a plus de responsable Debian intéressé par la maintenance du paquet, la fonctionnalité fournie par le paquet a été remplacée par un logiciel différent (ou une nouvelle version) ou il n'est plus considéré comme convenable pour Bookworm en raison de ses bogues. Dans ce dernier cas, le paquet peut cependant toujours être présent dans la distribution « unstable ».
Les paquets obsolètes ou créés localement peuvent être listés et purgés depuis la ligne de commande avec :
$ apt list '~o' # apt purge '~o'
Le système de suivi des bogues de Debian fournit souvent des informations complémentaires sur les raisons pour lesquelles un paquet a été retiré. Vous devriez consulter à la fois les comptes-rendus de bogue archivés pour le paquet lui-même et ceux du pseudo-paquet ftp.debian.org.
Pour une liste des paquets obsolètes de Bookworm, veuillez vous référer à la Section 5.3.1, « Paquets obsolètes ».
Certains paquets de Bullseye peuvent avoir été remplacés dans Bookworm par des paquets factices de transition qui sont des substituts vides conçus pour faciliter les mises à niveau. Si par exemple une application qui était précédemment un paquet simple a été découpée en deux paquets, un paquet de transition du même nom que l'ancien paquet peut être fourni ayant des dépendances appropriées qui déclenchent l'installation des nouveaux paquets. Après cette transition, le paquet factice redondant peut être supprimé en toute sécurité.
La plupart des descriptions des paquets factices signalent le but de ces
paquets. Cependant, elles ne sont pas uniformes ; en particulier, certains
paquets « factices » sont conçus pour rester installés afin
d'installer une suite logicielle complète ou pour déterminer quelle est la
version la plus récente d'un programme. Le programme
deborphan, avec les options de type
--guess-
, peut être utile
pour détecter ces paquets sur le système.
*
[1] Si la priorité de debconf est configurée à un très haut niveau, certaines demandes de configuration seront passées sous silence, mais les services qui dépendent de réponses par défaut qui ne s'appliquent pas au système ne vont pas pouvoir démarrer.
[2] Par exemple : les services DNS ou DCHP, en particulier s'il n'y a pas de redondance ou de serveur de secours. Dans le cas de DHCP, l'utilisateur peut être déconnecté du réseau si le temps d'attribution de l'adresse est inférieur à celui mis pour terminer le processus de mise à niveau.
[3] Cette fonctionnalité peut être désactivée en ajoutant le paramètre
panic=0
aux paramètres d'amorçage.
[4] Le système de gestion des paquets de Debian ne permet pas qu'un paquet supprime ou remplace un fichier appartenant à un autre paquet sauf si ce paquet est prévu pour remplacer cet autre paquet.
[5] Ou aussi longtemps qu'il n'y a pas de nouvelle version pendant cet intervalle de temps. Il n'y a typiquement qu'au plus deux versions stables prises en charge à tout moment.