Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format
PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
atelier:chantier:maintenir-debian-sid [10/01/2021 21:11] cyrille [Maintenir sa SID] |
atelier:chantier:maintenir-debian-sid [11/01/2021 21:18] cyrille [Maintenir sa Debian SID] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Maintenir sa Debian SID ====== | ====== Maintenir sa Debian SID ====== | ||
- | * Objet :Gérer et maintenir une debian SID | + | * Objet :Installer et maintenir une debian SID |
* Niveau requis : {{tag>débutant avisé}} | * Niveau requis : {{tag>débutant avisé}} | ||
* Commentaires : Quelques règles à respecter pour maintenir sa debian SID sans la casser. | * Commentaires : Quelques règles à respecter pour maintenir sa debian SID sans la casser. | ||
Ligne 8: | Ligne 8: | ||
* Création par [[user>cyrille]] 09/01/2021 | * Création par [[user>cyrille]] 09/01/2021 | ||
* Testé par <...> le <...> FIXME | * Testé par <...> le <...> FIXME | ||
- | * Amélioré par [[user>David5647]] | + | * Amélioré par [[user>David5647]], [[user>vv222]], [[user>--gilles--]] |
* Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?pid=352031 | Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) FIXME | * Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?pid=352031 | Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) FIXME | ||
Ligne 66: | Ligne 66: | ||
C'est le paquet essentiel pour maintenir une debian SID à jour. Une fois les paquets à mettre à jour, télécharger, il scannera les changelog à la recherche des bugs existants et non résolus. Si bug(s) il y a, vous serez prévenu sur quel paquet et ce sera à vous d'opter pour la bonne solution : installer ou non le paquet. | C'est le paquet essentiel pour maintenir une debian SID à jour. Une fois les paquets à mettre à jour, télécharger, il scannera les changelog à la recherche des bugs existants et non résolus. Si bug(s) il y a, vous serez prévenu sur quel paquet et ce sera à vous d'opter pour la bonne solution : installer ou non le paquet. | ||
+ | |||
+ | Il est recommandé de mettre à jour sa SID **au moins une fois semaine**. | ||
==== Que faire en cas de paquet(s) buggué(s) ==== | ==== Que faire en cas de paquet(s) buggué(s) ==== | ||
- | Plusieurs étapes snt alors à respecter : | + | Plusieurs étapes sont alors à respecter : |
- | * Lecture du rapport de gug | + | * Lecture du rapport de big |
* Pin les paquets problématiques | * Pin les paquets problématiques | ||
- | * Geler / dégeler les paquets (hold/unhold) | + | * //Alternative// : Geler / dégeler les paquets (**hold**/**unhold**) |
- | ==== Option 1 : Lecture du rapport de bug ==== | + | ==== Etape 1 : Lecture du rapport de bug ==== |
La première chose à faire est de lire la remontée de bug et de voir si le bug vous concerne. | La première chose à faire est de lire la remontée de bug et de voir si le bug vous concerne. | ||
Ligne 87: | Ligne 89: | ||
En fonction du bug, vous déciderez donc | En fonction du bug, vous déciderez donc | ||
* d'installer quand ce paquet (votre cas sus-cité) | * d'installer quand ce paquet (votre cas sus-cité) | ||
- | * de ne pas installer ce paquet | + | * de ne pas installer ce paquet. |
- | === apt-listbugs et pin de paquet buggué ==== | + | On se rend souvent compte qu'à peine ~10% des bugs signalés par **apt-listbugs** nous concernent vraiment. |
+ | |||
+ | ==== Etape 2 : apt-listbugs et pin de paquet buggué ===== | ||
Dans le cas où le bug affecterait le programme dans votre utilisation. L'outil apt-listbugs permet de le marquer comme non upgradable le temps de la mise à jour. Le système installera alors les paquets non buggués et laissera en attente les autres paquets, **//pinnés//** buggués. | Dans le cas où le bug affecterait le programme dans votre utilisation. L'outil apt-listbugs permet de le marquer comme non upgradable le temps de la mise à jour. Le système installera alors les paquets non buggués et laissera en attente les autres paquets, **//pinnés//** buggués. | ||
Ligne 95: | Ligne 99: | ||
Concrétement quand **apt-listbugs** listera des bugs, il suffira de répondre "**p**" (pour "**pin**") ce qui va étiqueter ces paquets via un fichier sous **/etc/apt/preferences.d/**, de manière à en empêcher la mise-à-jour vers la version qui a un souci. Une fois le bug corrigé, le fichier sous **/etc/apt/preferences.d/** est automatiquement mis à jour. | Concrétement quand **apt-listbugs** listera des bugs, il suffira de répondre "**p**" (pour "**pin**") ce qui va étiqueter ces paquets via un fichier sous **/etc/apt/preferences.d/**, de manière à en empêcher la mise-à-jour vers la version qui a un souci. Une fois le bug corrigé, le fichier sous **/etc/apt/preferences.d/** est automatiquement mis à jour. | ||
- | ==== Option 3 : Gel / dégel de paquet ==== | + | ==== Alternative non recommandée : Gel / dégel de paquet ==== |
Une autre méthode mais qui semble non recommandée est le **gel / dégel** de paquet via l'attribut **hold** / **unhold** d'**aptitude** ou de **apt-mark** | Une autre méthode mais qui semble non recommandée est le **gel / dégel** de paquet via l'attribut **hold** / **unhold** d'**aptitude** ou de **apt-mark** | ||
Ligne 101: | Ligne 105: | ||
On appelle gel de paquet la mise en place d'un marqueur afin qu'apt ne prenne pas en compte ce paquet lors de la mise à jour. | On appelle gel de paquet la mise en place d'un marqueur afin qu'apt ne prenne pas en compte ce paquet lors de la mise à jour. | ||
- | __**Geler un paquet:**__ | + | |Action| aptitude | apt-mark | |
+ | |Geler un paquet| aptitude hold <le_paquet_a_geler> | apt-mark hold <le_paquet_a_geler> | | ||
+ | |Degeler un paquet| aptitude unhold <le_paquet_a_geler> | apt-mark unhold <le_paquet_a_geler> | | ||
+ | |Lister les paquets gelés| aptitude search "~ahold" | apt-mark showhold | | ||
- | **Syntaxe avec aptitude:** | ||
- | <code root> | ||
- | aptitude hold <le_paquet_a_geler> | ||
- | </code> | ||
- | **Sinon passer par apt-mark** | ||
- | <code root> | ||
- | apt-mark hold <le_paquet_a_geler> | ||
- | </code> | ||
- | __**Pour dégeler un paquet:**__ | ||
- | **Syntaxe avec aptitude:** | + | Une fois le tag hold positionner, reprendre la procédure autant de fois qu'il y a des paquets buggués. |
+ | |||
+ | ==== Cas pratique ==== | ||
<code root> | <code root> | ||
- | aptitude unhold <le_paquet_a_geler> | + | apt update |
- | </code> | + | apt upgrade |
+ | [....] | ||
+ | 22,0 Mo réceptionnés en 6s (3626 ko/s) | ||
+ | Récupération des rapports de bogue… Fait | ||
+ | Analyse des informations Trouvé/Corrigé… Fait | ||
+ | bogues de gravité serious sur firefox-esr (78.6.0esr-1 → 78.6.1esr-1) <En attente de traitement> | ||
+ | b1 - #979612 - firefox-esr: after upgrade from 78.6.0esr-1~deb10u1 to 78.6.1esr-1~deb10u1 gnome interface behave erratically | ||
+ | Résumé : | ||
+ | firefox-esr(1 bogue) | ||
+ | Êtes-vous certain(e) de vouloir installer/mettre à niveau les paquets ci-dessus ? [Y/n/?/...] </code> | ||
- | **Sinon passer par apt-mark:** | + | A cette étape, il faut être prudent, saisissez ? pour voir les choix offerts |
<code root> | <code root> | ||
- | apt-mark unhold <le_paquet_a_geler> | + | Êtes-vous certain(e) de vouloir installer/mettre à niveau les paquets ci-dessus ? [Y/n/?/...] ? |
+ | y - poursuivre l'installation avec APT. | ||
+ | n - interrompre l'installation avec APT. | ||
+ | <num> - interroger le numéro de bogue indiqué | ||
+ | (utilise querybts en tant qu'utilisateur ragnarok). | ||
+ | #<num> - identique à <num>. | ||
+ | b<id> - comme <num>, mais interrogeant le bogue identifié par <id>. | ||
+ | r - afficher les listes de bogues. | ||
+ | c - créer la liste de bogues en HTML. | ||
+ | w - afficher la liste des bogues en HTML | ||
+ | (utilise sensible-browser en tant qu'utilisateur ragnarok). | ||
+ | d <num>… - éviter les bogues <num> en épinglant les paquets affectés | ||
+ | (APT doit être relancé pour activer cette option). | ||
+ | d b<id>… - éviter les bogues identifiés par <id> en épinglant les paquets | ||
+ | affectés (APT doit être relancé pour activer cette option). | ||
+ | p <pqt>… - épingler les paquets <pqt> | ||
+ | (APT doit être relancé pour activer cette option). | ||
+ | p - épingler tous les paquets ci-dessus | ||
+ | (APT doit être relancé pour activer cette option). | ||
+ | i <num> - marquer comme étant ignoré le bogue numéro <num>. | ||
+ | i b<id> - marquer comme étant ignoré le bogue identifié par <id>. | ||
+ | i - marquer tous les bogues ci-dessus comme ignorés. | ||
+ | u - annuler toutes les opérations éviter/épingler/ignorer | ||
+ | effectuées jusqu'à présent. | ||
+ | ? - afficher cette aide. | ||
</code> | </code> | ||
- | __**Connaître la liste des paquets geler de votre système:**__ | + | Si vous voulez voir le détail du bug, saisissez le numéro de bug. Par exemple, dans le cas sus-cité |
- | **Avec aptitude:** | + | <code root>Êtes-vous certain(e) de vouloir installer/mettre à niveau les paquets ci-dessus ? [Y/n/?/...] #979612 |
- | <code root> | + | Retrieving report #979612 from Debian bug tracking system...</code> |
- | aptitude search "~ahold" | + | |
- | </code> | + | |
- | **Avec dpkg:** | + | Le rapport de bug s'affichera automatiquement. Saisissez "**q**" pour quitter. |
- | <code root> | + | |
- | dpkg --list | grep ^hi | + | |
- | </code> | + | |
- | **Avec apt-mark** | + | Si le rapport ne vous concerne pas, vous pouvez accepter la mise à jour du paquet, sinon épingler ce paquet (letttre "**p**") |
- | <code root> | + | |
- | apt-mark showhold | + | |
- | </code> | + | |
- | Une fois le tag hold positionner, reprendre la procédure autant de fois qu'il y a des paquets buggués. | ||
- | <code root> | ||
- | apt update | ||
- | </code> | ||
- | <code root> | + | ===== Des utilitaires pratiques ===== |
- | apt upgrade | + | |
- | Lecture des listes de paquets... Fait | + | |
- | Construction de l'arbre des dépendances | + | |
- | Lecture des informations d'état... Fait | + | |
- | Calcul de la mise à jour... Fait | + | |
- | Les paquets suivants ont été conservés : | + | |
- | apt apt-utils cups-client exim4-daemon-light libcups2 libcurl3-gnutls | + | |
- | libgnutls-dane0 libgnutls30 libjs-jquery libnm0 libnss-systemd | + | |
- | libpam-systemd libsmbclient libsystemd0 libwbclient0 network-manager ppp | + | |
- | samba-libs systemd systemd-timesyncd wget | + | |
- | Les paquets suivants seront mis à jour : | + | |
- | binutils binutils-common binutils-x86-64-linux-gnu cpp-10 cups-common dpkg | + | |
- | dpkg-dev dput findutils firefox-esr firefox-esr-l10n-fr firmware-iwlwifi | + | |
- | firmware-misc-nonfree g++-10 gcc-10 gcc-10-base giblib1 ispell kmod | + | |
- | libapt-pkg6.0 libasan6 libatomic1 libaudit-common libaudit1 libbinutils | + | |
- | libcc1-0 libctf-nobfd0 libctf0 libdpkg-perl libdw1 libelf1 libgcc-10-dev | + | |
- | libgcc-s1 libgfortran5 libgomp1 libhttp-message-perl libitm1 libjs-sphinxdoc | + | |
- | libkmod2 libllvm11 liblsan0 libmaxminddb0 libproxy-tools libproxy1v5 | + | |
- | libpulse-dev libpulse-mainloop-glib0 libpulse0 libpulsedsp libquadmath0 | + | |
- | libstdc++-10-dev libstdc++6 libtsan0 libubsan1 libvdpau1 libvulkan1 libx11-6 | + | |
- | libx11-data libx11-dev libx11-xcb1 libzmq5 locate logrotate media-types | + | |
- | patch publicsuffix pulseaudio pulseaudio-utils python3-pil python3-psutil | + | |
- | ruby-rubygems vdpau-driver-all xserver-common xserver-xorg-core | + | |
- | xserver-xorg-legacy | + | |
- | 74 mis à jour, 0 nouvellement installés, 0 à enlever et 21 non mis à jour. | + | |
- | Il est nécessaire de prendre 166 Mo dans les archives. | + | |
- | Après cette opération, 613 ko d'espace disque supplémentaires seront utilisés. | + | |
- | Souhaitez-vous continuer ? [O/n] | + | |
- | </code> | + | |
- | A cette étape, répondez OUI. | + | On peut utiliser ces utilitaires en parallèle : |
- | Les mises à jour sont alors téléchargées et le changelog de chaque paquet sera lu afin de voir si des bugs existent ou non. | + | ==== apt-listchanges ==== |
- | <code root> | + | **apt-listchanges** : à l'issue de la mise à jour, les changements importants apportés seront affichés à l'écran (appui sur **q** pour quitter l'affichage) |
- | Souhaitez-vous continuer ? [O/n] y | + | |
- | Réception de :1 http://deb.debian.org/debian sid/main amd64 dpkg amd64 1.20.7.1 [2464 kB] | + | |
- | [ .. ] | + | |
- | Réception de :74 http://deb.debian.org/debian sid/main amd64 xserver-xorg-core amd64 2:1.20.10-2 [3595 kB] | + | |
- | 166 Mo réceptionnés en 29s (5636 ko/s) | + | |
- | Récupération des rapports de bogue… Fait | + | |
- | Analyse des informations Trouvé/Corrigé… Fait | + | |
- | bogues de gravité serious sur firefox-esr (78.6.0esr-1 → 78.6.1esr-1) <En attente de traitement> | + | |
- | b1 - #979612 - firefox-esr: after upgrade from 78.6.0esr-1~deb10u1 to 78.6.1esr-1~deb10u1 gnome interface behave erratically | + | |
- | Résumé : | + | |
- | firefox-esr(1 bogue) | + | |
- | Êtes-vous certain(e) de vouloir installer/mettre à niveau les paquets ci-dessus ? [Y/n/?/...] | + | |
- | </code> | + | |
- | En cas de bug, vous verrez cette dernière ligne apparaitre, si pas de bug la mise à jour se poursuivra. | + | ==== Relire un log ou un bug ==== |
- | Dans ce le cas d'un bug, comme ici, stopper la mise à jour | + | **Un changelog** |
- | <code root> | + | Si jamais vous avez regardé trop vite la description et souhaitez la revisionner plus tard, utiliser l'attribut **changelog** d'**apt** ou d'**aptitude**. |
- | Êtes-vous certain(e) de vouloir installer/mettre à niveau les paquets ci-dessus ? [Y/n/?/...] N | + | |
- | **************************************************************** | + | |
- | ****** Sortie sur erreur pour interrompre l'installation. ****** | + | |
- | **************************************************************** | + | |
- | E: Le sous-processus /usr/bin/apt-listbugs apt a renvoyé un code d'erreur (10) | + | |
- | E: Failure running script /usr/bin/apt-listbugs apt | + | |
- | </code> | + | |
- | Geler le paquet qui pose soucis: | + | Exemple: |
- | <code root> | + | <code user>apt changelog apt</code> |
- | root@valhalla:~# apt-mark hold firefox-esr: | + | |
- | firefox-esr passé en figé (« hold »). | + | |
- | root@valhalla:~# apt-mark showhold | + | |
- | firefox-esr | + | |
- | libgnutls30 | + | |
- | libjs-jquery | + | |
- | </code> | + | |
- | Relancer la mise à jour: | + | |
- | <code root> | + | |
- | apt upgrade | + | |
- | </code> | + | |
- | Si de nouveaux bugs sortent, recommencer ces étapes autant de fois que nécessaire. | + | Affichera<code> |
+ | apt (2.1.16) unstable; urgency=medium | ||
- | Votre système est alors à jour | + | [ Faidon Liambotis ] |
+ | * Various fixes to http and connect method | ||
+ | - basehttp: also consider Access when a Server's URI | ||
+ | - connect: convert a C-style string to std::string | ||
+ | - connect: use ServiceNameOrPort, not Port, as the cache key | ||
- | La prochaine mise à jour | + | [ Julian Andres Klode ] |
- | Dégeler les paquets gelés avant la prochaine mise à jour afin de les réinjecter dans le processus (si les bugs ont été corrigés, pas de soucis, sinon les regeler en suivant les recommandations sus-citées). | + | * patterns: Add dependency patterns ?depends, ?conflicts, etc. |
+ | Note that the -broken- variants are not implemented yet. | ||
+ | * Rewrite of the kernel autoremoval code: | ||
+ | - Determine autoremovable kernels at run-time (LP: #1615381), this fixes the | ||
+ | issue where apt could consider a running kernel autoremovable | ||
+ | - Automatically remove unused kernels on apt {full,dist}-upgrade. | ||
+ | This helps ensuring that we don't run out of /boot space. | ||
+ | - Only keep up to 3 (not 4) kernels. | ||
+ | Ubuntu boot partitions were sized for 3 kernels, not 4.</code> | ||
+ | Appuyer sur "**q**" pour quitter. | ||
- | **Exemple** | + | **Un bug** |
- | <code root> | + | |
- | apt unhold firefox-esr libgnutls30 libjs-jquery | + | |
- | apt update | + | |
- | apt upgrade | + | |
- | </code> | + | |
+ | Pour revoir un bug, utiliser apt-listbugs: | ||
- | ===== Des utilitaires pratiques ===== | + | <code user>apt-listbugs list apt |
+ | Récupération des rapports de bogue… Fait | ||
+ | Analyse des informations Trouvé/Corrigé… Fait | ||
+ | bogues de gravité serious sur apt (→ ) <En attente de traitement> | ||
+ | b1 - #922223 - apt: terminate called after throwing an instance of 'std::logic_error' ... Aborted | ||
+ | bogues de gravité serious sur apt (→ ) <Résolus dans une version donnée> | ||
+ | b2 - #931566 - Don't complain about suite changes (Acquire::AllowReleaseInfoChange::Suite should be "true") (Corrigé : apt/2.1.10) | ||
+ | Résumé : | ||
+ | apt(2 bogues)</code> | ||
- | On peut utiliser ces utilitaires en parallèle : | + | 2 options complémentaires sont intéressantes : |
+ | |||
+ | **-s <gravités>** : Restreindre l'affichage aux bogues avec ces gravités ("**all**" pour les voir tous, sinon [**critical,grave,serious**]). | ||
+ | |||
+ | **-S <états>** : Restreindre l'affichage aux bogues correspondant à ces états : [**pending,forwarded,pending-fixed,fixed,done**]. | ||
- | ==== apt-listchanges ==== | ||
- | **apt-listchanges** : à l'issue de la mise à jour, les changements importants apportés seront affichés à l'écran (appui sur **q** pour quitter l'affichage) | ||
==== needrestart ==== | ==== needrestart ==== | ||
Ligne 298: | Ligne 280: | ||
</code> | </code> | ||
+ | A noter : la dernière version d'apt (2.1.16) intègre un autoremove. Elle permet de déterminer les noyaux auto-amovibles au moment de l'exécution. | ||
+ | * Corrige le problème où apt pourrait envisager de supprimer un noyau en cours d'exécution amovible | ||
+ | * Supprime automatiquement les noyaux inutilisés sur apt **{full, dist} -upgrade**. | ||
+ | * Cela permet de garantir que nous ne manquons pas d'espace / boot. | ||
+ | * Ne garde que 3 noyaux (et non 4). | ||
+ | |||
+ | |||
+ | ==== Vider le cache d'apt ==== | ||
+ | Comme les mises à jour sont fréquentes, pensez à vider régulièrement le cache d'apt. | ||
+ | |||
+ | Ne vider pas trop vite le cache d'apt, car il se peut que vous soyez amener à réinstaller un paquet dans une version précédente sans connexion internet (cas rare mais possible). | ||
+ | |||
+ | <code user>apt clean</code> | ||
+ | |||
+ | ==== Sauvegarde du système ==== | ||
+ | |||
+ | La documentation officielle préconise une sauvegarde du système et la réalisation d'instantanées avec un outil style **timeshift** afin de se prémunir de toutes mauvaises surprises. Personnellement, je ne le fais pas, mais c'est vrai que cela peut être un filet supplémentaire. | ||