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 | ||
doc:systeme:apt:apt-listbugs [11/06/2010 15:19] smolski |
doc:systeme:apt:apt-listbugs [08/02/2021 18:19] captnfab [Que faire si un paquet bugué est détecté ?] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== 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 ===== | ||
+ | |||
+ | <code root>apt-get install apt-listbugs</code> | ||
+ | |||
+ | 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: | ||
+ | <code>Êtes-vous certain(e) de vouloir installer/mettre à niveau les paquets ci-dessus ? [Y/n/?/...]</code> | ||
+ | En tapant <key>?</key> et en validant, le menu détaillé suivant s'affiche: | ||
+ | <code> | ||
+ | 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> | ||
+ | |||
+ | Plusieurs étapes sont alors à respecter : | ||
+ | * Lecture du rapport de bug | ||
+ | * Pin les paquets problématiques | ||
+ | * //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 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'étiqueter 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 <le_paquet_a_geler> | apt-mark hold <le_paquet_a_geler> | | ||
+ | |Dégeler 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 | | ||
+ | |||
+ | |||
+ | 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: | ||
+ | |||
+ | <code user>apt-listbugs list apt</code> | ||
+ | <code>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> | ||
+ | |||
+ | 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**]. | ||
+ | |||
+ | |||
+ | ===== Cas pratique 1 ===== | ||
+ | |||
+ | Après une mise à jour classique… | ||
+ | <code root> | ||
+ | apt update | ||
+ | apt upgrade | ||
+ | </code> | ||
+ | |||
+ | Un bug est trouvé: | ||
+ | <code> | ||
+ | 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> | ||
+ | |||
+ | 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é | ||
+ | |||
+ | <code>Êtes-vous certain(e) de vouloir installer/mettre à niveau les paquets ci-dessus ? [Y/n/?/...] #979612 | ||
+ | Retrieving report #979612 from Debian bug tracking system...</code> | ||
+ | |||
+ | 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 | ||
+ | <code root> apt install python3-rgain3 mp3gain</code> | ||
+ | <code> | ||
+ | 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) <Transférés> | ||
+ | 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/?/...]</code> | ||
+ | |||
+ | 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 : | ||
+ | <code>Êtes-vous certain(e) de vouloir installer/mettre à niveau les paquets ci-dessus ? [Y/n/?/...]#968186</code> | ||
+ | |||
+ | |||
+ | Un écran affichera la descrition du bug : | ||
+ | <code>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</code> | ||
+ | |||
+ | Lisez le attentivement et ensuite prenez la décision la plus appropriée. Appuyer sur q pour revenir à l'affichage précédent. | ||
+ | <code> | ||
+ | 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|?]?</code> | ||
+ | |||
+ | 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 ===== | ||
+ | |||
+ | |||
+ | * //Merci à lol et le fada sur le forum ici// : http://debian-facile.org/forum/viewtopic.php?pid=17706#p17706 | ||
+ | * https://debian-facile.org/viewtopic.php?pid=158917#p158917 Gestion des paquets Debian - Utilisation de apt-listbugs | ||
+ | |||