====== apt-listbugs ======
* Objet : Vérifier qu'un paquet ne contienne pas de bug grave avant de l'installer.
* Niveau requis : {{tag> avisé}}
* Commentaires : //Logiciel de suivi des bogues. C'est pas mignon ça ? :-D//
* Suivi :
* Création par [[user>smolski]] le 11-06-2010
* Mise à jour par [[user>smolski]] le 06-02-2014
* Mise à jour par [[user>captnfab]] (transfert du travail de [[user>cyrille]]) le 08-02-2021
* Testé par ...... le .....
* Commentaires sur le forum : [[http://debian-facile.org/topic-2670-wiki-apt-listbugs-logiciel-de-surveillance-des-paquets-bogues-page-1.html | Lien vers le forum concernant ce tuto]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
===== Introduction =====
**Apt-listbugs** fournit la liste des rapports de bogues critiques disponibles dans le système de suivi des bogues Debian. \\
Il est conseillé de l'exécuter avant l'utilisation d'un outil **apt** pour se rendre compte si une mise à jour ou une installation est connue pour être non sûre.
Son utilisation est particulièrement recommandée lors de l'utilisation de Debian sid.
===== Installation =====
apt-get install apt-listbugs
Une fois installé, apt-listbugs est lancé automatiquement par apt-get et aptitude lors de l'installation/mise-à-jour de paquets. :-)
===== Que faire si un paquet bugué est détecté ? =====
**apt** s'arrête et nous demande:
Êtes-vous certain(e) de vouloir installer/mettre à niveau les paquets ci-dessus ? [Y/n/?/...]
En tapant ? et en validant, le menu détaillé suivant s'affiche:
y - poursuivre l'installation avec APT.
n - interrompre l'installation avec APT.
- interroger le numéro de bogue indiqué
(utilise querybts en tant qu'utilisateur ragnarok).
# - identique à .
b - comme , mais interrogeant le bogue identifié par .
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 … - éviter les bogues en épinglant les paquets affectés
(APT doit être relancé pour activer cette option).
d b… - éviter les bogues identifiés par en épinglant les paquets
affectés (APT doit être relancé pour activer cette option).
p … - épingler les paquets
(APT doit être relancé pour activer cette option).
p - épingler tous les paquets ci-dessus
(APT doit être relancé pour activer cette option).
i - marquer comme étant ignoré le bogue numéro .
i b - marquer comme étant ignoré le bogue identifié par .
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.
Plusieurs étapes sont alors à respecter :
* Lecture du rapport de bug en indiquant le numéro de bug: - interroger le numéro de bogue indiqué
* épingler les paquets problématiques en appuyant sur la touche p de son clavier (par exemple).
* //Alternative// : Geler / dégeler les paquets (**hold**/**unhold**)
==== Étape 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. Voici quelques situations dans lesquelles installer un paquet bugué n'est pas gênant:
* L'architecture de votre système n'est pas concernée
* Le paquet est présent mais pas utilisé
* Votre utilisation de ce paquet n'est pas impactée par le bug
* Vous pouvez vous passer de l'outil pendant un moment
* Vous rencontrez déjà le bug avec la version présente sur votre système
En fonction du bug, vous déciderez donc
* d'installer quand même ce paquet (cf. cas sus-cités)
* de ne pas installer ce paquet.
Au final, assez peu de bugs signalés par **apt-listbugs** nous concernent vraiment.
==== Etape 2 : apt-listbugs et pin de paquet bugué =====
Dans le cas où vous ne souhaitez pas mettre à jour un paquet car le bug introduit vous impacte, l'outil apt-listbugs permet de le marquer comme non upgradable le temps de la mise à jour. Le système installera alors, dans la mesure du possible, les autres paquets et laissera en attente les paquets **//pin-és//**.
Concrètement quand **apt-listbugs** liste des bugs, il suffit si l'on veut empêcher la mise à jour, de répondre "**p**" (pour "**pin**") afin d'épingler ces paquets via un fichier sous ''/etc/apt/preferences.d/''. Une fois le bug corrigé, le fichier sous ''/etc/apt/preferences.d/'' est automatiquement mis à jour.
==== 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**, et positionnable avec aptitude et apt-mark.
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.
|Action| aptitude | apt-mark |
|Geler un paquet| aptitude hold | apt-mark hold |
|Dégeler un paquet| aptitude unhold | apt-mark unhold |
|Lister les paquets gelés| aptitude search "~ahold" | apt-mark showhold |
Une fois le tag hold positionné, reprendre la procédure autant de fois qu'il y a des paquets bugués.
===== Consulter la liste des bugs =====
Pour revoir les bugs d'un paquet:
apt-listbugs list apt
Récupération des rapports de bogue… Fait
Analyse des informations Trouvé/Corrigé… Fait
bogues de gravité serious sur apt (→ )
b1 - #922223 - apt: terminate called after throwing an instance of 'std::logic_error' ... Aborted
bogues de gravité serious sur apt (→ )
b2 - #931566 - Don't complain about suite changes (Acquire::AllowReleaseInfoChange::Suite should be "true") (Corrigé : apt/2.1.10)
Résumé :
apt(2 bogues)
2 options complémentaires sont intéressantes :
* ''-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**].
===== Cas pratique 1 =====
Après une mise à jour classique…
apt update
apt upgrade
Un bug est trouvé:
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)
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/?/...]
A cette étape, il faut être prudent, saisissez ? pour voir les choix offerts (cf le menu détaillé dans la partie "Que faire" ci-dessus)
Si vous voulez voir le détail du bug, saisissez le numéro de bug. Par exemple, dans le cas sus-cité
Êtes-vous certain(e) de vouloir installer/mettre à niveau les paquets ci-dessus ? [Y/n/?/...] #979612
Retrieving report #979612 from Debian bug tracking system...
Le rapport de bug s'affichera automatiquement. Saisissez "**q**" pour quitter.
Si le rapport ne vous concerne pas, vous pouvez accepter la mise à jour du paquet, sinon épingler ce paquet (letttre "**p**")
===== Cas pratique 2 =====
Je veux installer une paire de paquets
apt install python3-rgain3 mp3gain
Récupération des rapports de bogue… Fait
Analyse des informations Trouvé/Corrigé… Fait
bogues de gravité serious sur python3-rgain3 (→ 1.0.0-1)
b1 - #968186 - python3-rgain3: API is potentially about to break
Résumé :
python3-rgain3(1 bogue)
Êtes-vous certain(e) de vouloir installer/mettre à niveau les paquets ci-dessus ? [Y/n/?/...]
Vous ne savez pas quelle décision prendre ? Appuyer sur __**?**__
La liste des options apparaîtra (cf le menu détaillé dans la partie "Que faire" ci-dessus).
Si vous saisissez le numéro du bug vous obtiendrez sa description :
Êtes-vous certain(e) de vouloir installer/mettre à niveau les paquets ci-dessus ? [Y/n/?/...]#968186
Un écran affichera la descrition du bug :
Upstream changes in rgain3 have broken the import ABI. This doesn't mean
anything for the replaygain and collectiongain CLI tools, but would
break compatibility if we had packages in Debian that imported it as a
library.
I've asked for clarification on whether this was intentional, but until
I get an answer, this library probably shouldn't migrate.
smcv
Lisez le attentivement et ensuite prenez la décision la plus appropriée. Appuyer sur q pour revenir à l'affichage précédent.
Retrieving report #968186 from Debian
bug tracking system... What do you want to do now [x|O|r|b|e|q|?]? ?
x - Provide extra information.
O - (default) Show other bug reports (return to bug listing).
r - Redisplay this message.
b - Launch web browser to read full log.
e - Launch e-mail client to read full log.
q - I'm bored; quit please.
? - Display this help.
What do you want to do now [x|O|r|b|e|q|?]?
Répondez **__q__** et décidez ou non de pinner le paquet.
//apt-listbugs// ajoute ces paquets dans le fichier de [[:doc:systeme:apt:pinning | préférences]] pour éviter la version buggée.
===== Lien vers le forum =====
* https://debian-facile.org/viewtopic.php?pid=158917#p158917 Gestion des paquets Debian - Utilisation de apt-listbugs