Apt-listbugs: come monitorare i bug: differenze tra le versioni

m
verificata
(Release Iniziale)
 
m (verificata)
 
(29 versioni intermedie di 11 utenti non mostrate)
Riga 1: Riga 1:
==Introduzione==
{{Versioni compatibili|Jessie|Stretch|Buster|Testing_2019|Unstable_2019}}
== Introduzione ==
Spesso ci è capitato di installare dei [[pacchetto|pacchetti]] contenenti dei [[bug]], conosciuti anche prima del nostro download. Prima di installare un pacchetto, infatti, sarebbe opportuno fare una visitina su questo sito'''<sup>[[#Collegamenti esterni| [1]]]</sup>''', dove vengono tracciati tutti i bug segnalati. Questo motore di gestione dei bug è molto potente e funzionale, ma se non volessimo perdere tempo ogni volta? <code>apt-listbugs</code> è la risposta!


Spesso ci � capitato di installare dei pacchetti contenenti dei bug, conosciuti anche prima del nostro download.
<code>apt-listbugs</code>, infatti, ci permette di essere informati sui bug presenti nel nostro sistema e presenti nei pacchetti che stiamo per installare; vediamo come utilizzarlo e configurarlo al meglio per le nostre esigenze.
Prima di installare un pacchetto, infatti, sarebbe opportuno fare una visitina sul sito http://bugs.debian.org, dove vengono tracciati i bug segnalati. Questo motore di gestione dei bug � molto potente e funzionale..ma se non volessimo perdere tempo ogni volta?
apt-listbugs � la risposta!
apt-listbugs, infatti, ci permette di essere informati sui bug presenti nel nostro sistema e presenti nei pacchetti che stiamo per installare...vediamo come utilizzarlo e configurarlo al meglio per le nostre esigenze!


L'installazione di questo programma, davvero molto utile in ogni situazione, diventa ancor più raccomandabile per le [[release]] [[testing]] e [[unstable]] di Debian, dove le probabilità di riscontrare nuovi bug sono molto maggiori.


==Installazione==
== Installazione ==
 
Per installare <code>apt-listbugs</code>, è sufficiente con [[privilegi di amministrazione]]:
Per installare apt-listbugs, sufficiente un
<pre>
<pre>
# apt-get install apt-listbugs
# apt install apt-listbugs
</pre>
</pre>


== Configurazione ==
<code>apt-listbugs</code> è già configurato per interagire con [[dpkg]] e [[APT]] in quanto aggiunge un file nella directory <code>/etc/apt/apt.conf.d/</code>, che contiene le direttive da eseguire al termine del download dei pacchetti e prima della loro installazione.<br/>
Inoltre viene creata la directory <code>/etc/apt/listbugs/</code>; essa conterrà dei file di supporto per il normale funzionamento del programma, come ad esempio il file <code>ignore_bugs</code>, contenente la lista dei bug ignorati durante l'installazione dei pacchetti.


==Configurazione==
Nel file <code>/etc/apt/apt.conf.d/10aptlistbugs</code> è di particolare importanza la riga:
<pre>
AptListBugs::Severities "critical,grave,serious";
</pre>
che si occupa di filtrare i bug da mostrare durante l'utilizzo automatico con le operazioni di installazione o aggiornamento di [[APT]], ignorando tutti quelli che '''non''' sono considerati ''critical'', ''grave'' o ''serious''; ossia che non sono contrassegnati con le tre maggiori [[severità]]. Altri possibili valori, in ordine decrescente di [[severità]], sono: ''important'', ''normal'', ''minor'' e ''wishlist''.


Apt-listbugs � gi� configurato per interagire con dpkg e apt in quanto aggiunge uno script nella directory '''/etc/apt/apt.conf.d/''', che contiene gli script da eseguire al termine del download dei pacchetti. Raccomando di non modificare il contenuto di questa directory, a meno di non sapere esattamente cosa fare pena l'impossibilit� di installare pacchetti e/o il cattivo funzionamento di dpkg e apt-get).
Se si vuol disabilitare la ricerca dei bug automatica da parte di <code>apt-listbugs</code> ad ogni aggiornamento/rimozione dei pacchetti, basta commentare tutte le righe presenti nel file <code>/etc/apt/apt.conf.d/10apt-listbugs</code> , aggiungendo i due caratteri <code>//</code> a inizio di ogni riga. Così facendo il programma sarà utilizzabile soltanto manualmente.
Nella directory '''/etc/apt/''' verr� aggiunta una nuova folder: "listbugs" che conterr� dei file di supporto per il normale funzionamento del programma (ad esempio il file ignore_bugs, contenente la lista dei bug ignorati durante l'installazione dei pacchetti).


== Utilizzo ==
L'utilizzo base del programma è semplicissimo e può avvenire in due modi distinti
;automaticamente:ogni volta che installeremo o aggiorneremo dei pacchetti.
;manualmente:eseguendo <code>apt-listbugs</code> da linea di comando. Utile per conoscere tutti bug (e il loro stato) relativi ad un pacchetto.


==Utilizzo==
=== Utilizzo automatico ===
 
Se non disabilitato, ogni volta che aggiorniamo o installiamo un pacchetto, <code>apt-listbugs</code> interrogherà i server Debian per sapere se ci sono dei bug aperti per le applicazioni installate; raccolte le informazioni ci avvertirà in caso di bug (altrimenti lascerà continuare normalmente il processo di installazione).
L'utilizzo base del programma � semplicissimo:
In caso di presenza di bug, mostrerà a video la lista di quelli presenti (sia aperti che chiusi); ecco un esempio:
ogni volta che installeremo o aggiorneremo dei pacchetti, apt-listbugs interrogher� i server Debian per sapere se ci sono dei bug aperti per le applicazioni installate; raccolte le informazioni ci avvertir� in caso di bug (altrimenti lascer� continuare normalmente il processo di installazione).
In caso di presenza di bug, mostrer� a video la lista di quelli presenti (sia aperti che chiusi); ecco un esempio:
<pre>
<pre>
Retrieving bug reports... Done
Recupero delle segnalazioni di bug... Fatto
critical bugs of login (1:4.0.3-30.7 -> 1:4.0.3-30.8) <done>
Analisi delle informazioni... Fatto
#290803 - login: /var/log/btmp is created with insecure permissions
Bug critical di plymouth (-> 0.9.0-9) <Aperti>
critical bugs of postfix (2.1.4-5 -> 2.1.5-5) <done>
  b1 - #782456 - plymouth: With plymouth installed, starting the DM sometimes fails
#288728 - postfix gives up with warning: no MX host for xxxx.com has a valid A record
Riepilogo:
grave bugs of mysql-server (4.0.23-1 -> 4.0.23-3) <open>
  plymouth (1 bug)
  #291378 - mysql-server: Security fixes pending in experimental version
Installare/aggiornare i precedenti pacchetti? [Y/n/?/...]
grave bugs of postfix (2.1.4-5 -> 2.1.5-5) <open>
#285111 - postfix: newaliases not working due to some library problem
#291031 - postfix: Upgrade from Postfix 2.1.4-5 to 2.1.5-4 fails #3
#292086 - stock installed master.cf file causes postfix to fail to start
Summary:
  mysql-server(1 bug), login(1 bug), postfix(4 bugs)
Are you sure you want to install/upgrade the above packages? [Y/n/?/...]
</pre>
</pre>


 
Come potete vedere, visualizza una lista di bug presenti, divisi per gravità (prima quelli 'Critical', poi quelli 'Grave') e poi per pacchetto. Inoltre i bug sono contraddistinti da 2 [[tag]], '''<done>''' e '''<open>''':<br/>
Come potete vedere, visualizza una lista di bug presenti, divisi per categoria (prima quelli 'Critical', poi quelli 'Grave') e poi per pacchetto. Inoltre i bug sono contraddistinti da 2 tag: '''<done>''' e '''<open>''':<br/>
'''<done>''' rappresenta un bug corretto<br/>
'''<done>''' rappresenta un bug corretto<br/>
'''<open>''' rappresenta un bug ancora aperto<br/>
'''<open>''' rappresenta un bug ancora aperto<br/>
[[Severità | Qui]] è visibile la descrizione dei livelli di gravità dei bug (severities).


Ecco una tabella riassuntiva delle categorie in cui sono divisi i bug:
Di default <code>apt-listbugs</code> mostrerà i bug appartenenti alle prime tre categorie. In caso di bug rilevati, viene chiesto cosa fare.
'''critical''' si riferisce a problemi che bloccano il pacchetto o l'intero sistema; oppure causano la perdita di dati importanti; oppure introducono dei problemi di sicurezza sui sistemi nei quali installi il pacchetto.<br/>
Le opzioni disponibili sono:<br/>
'''grave''' rende il pacchetto in questione inusabile o quasi; oppure causa la perdita di dati; oppure introduce dei problemi di sicurezza legati agli utenti del pacchetto.<br/>
; <code>y</code>: continua l'installazione ignorando i bug trovati;<br/>
'''serious''' indica una seria violazione della policy Debian (vale a dire di tutto quello che � identificato come "must" o "required") o che comunque secondo il manutentore del pacchetto rende lo stesso inappropriato per il rilascio.<br/>
; <code>n</code>: interrompe immediatamente l'installazione;<br/>
'''important''' un bug che abbia un effetto pesante sull'usabilit� del pacchetto, senza per� renderlo inusabile per tutti.<br/>
; <code><num></code>: inserendo il numero del bug (quello preceduto da #) è possibile ottenere maggiori informazioni riguardo al bug;<br/>
'''normal''' il valore predefinito, utilizzabile per i bug normali.<br/>
; <code>r</code>: mostra la lista dei bug (comodo dopo la visualizzazione dei dettagli, ad esempio);<br/>
'''minor''' un bug che non inficia l'usabilit� del pacchetto e che � facile da correggere.<br/>
; <code>p</code>: esegui il pinning di tutti i pacchetti segnalati nel bug report (cioè lo 'blocca' e non lo installa); questa opzione richiede l'uscita da '''apt-get''' e una riesecuzione del comando di installazione/aggiornamento precedentemente lanciato;<br/>
'''wishlist''' per ogni richiesta di cambiamento del programma non legata a bug.<br/>
; <code>p <pkg></code>: esegue il pinning del pacchetto indicato;<br/>
(fonte: http://www.debian.org/Bugs/Developer#severities)
; <code>i</code>: ignora il bug corrispondente a (per evitare il pinning di pacchetti il cui bug è segnato come "done");<br/>
 
; <code>?</code>: mostra un piccolo help con le opzioni utilizzabili;<br/>
 
; <code>w</code>: mostra il report bug in html (mai usato).
Apt-listbugs ci mostra prevalentemente quelli appartenenti alle prime due categorie.


Tornando ad apt-listbugs, in caso di bug rilevati, viene chiesto cosa fare.
Il funzionamento, quindi, è molto semplice: basta leggere con attenzione la lista dei bug riscontrati ed agire di conseguenza!<br/>
Le opzioni disponibili sono:<br/>
Nel caso di pinning di anche un solo pacchetto è necessario ricominciare il processo di aggiornamento/installazione.
'''y''' Continua l'installazione ignorando i bug trovati;<br/>
'''n''' Interrompe immediatamente l'installazione;<br/>
'''<num>''' Inserendo il numero del bug (quello preceduto da #) al posto di � possibile ottenere maggioni informazioni riguardo il bug;<br/>
'''r''' Mostra la lista dei bug (comodo dopo la visualizzazione dei dettagli, ad esempio);<br/>
'''p''' Esegui il pinning di tutti i pacchetti segnalati nel bug report (cio� lo 'blocca' e non lo installa); questa opzione richiede l'uscita da '''apt-get''' e una riesecuzione del comando di installazione/aggiornamento precedentemente lanciato;<br/>
'''p <pkg>''' Esegue il pinning del pacchetto indicato;<br/>
'''i''' Ignora il bug corrispondente a (per evitare il pinning di pacchetti il cui bug � segnato come "done";<br/>
'''?''' Mostra un piccolo help con le opzioni utilizzabili;<br/>
'''w''' Mostra il report bug in html (mai usato...).


Il funzionamento, quindi, � molto semplice!
Se si effettua il [[pinning]] di uno o più pacchetti, esso sarà annotato nel file <code>/etc/apt/preferences.d/apt-listbugs</code>. Sarà necessario al prossimo aggiornamento rimuoverlo dal file in questione, altrimenti esso sarà sempre assunto come aggiornato e non più proposto per l'aggiornamento.
Basta leggere con attenzione la lista dei bug riscontrati ed agire di conseguenza!
Ricordo che, nel caso di pinning di anche un solo pacchetto, � necessario ricominciare il processo di aggiornamento/installazione...


In caso di pinning di uno o pi� pacchetti, � necessario (al prossimo aggiornamento) rimuoverlo da '''/etc/apt/preferences''':
Installando <code>plymouth</code> è stato segnalato un bug con severità '''critical''' che ne compromette il funzionamento, per cui si è deciso di far eseguire ad <code>apt-listbugs</code> il pinning del pacchetto.
Nel file '''/etc/apt/preferences''', ad esempio, trovo questo blocco relativo a postfix (prima l'ho pinnato, visto che il bug comprometteva gravemente il funzionamento):
Nel file <code>/etc/apt/preferences.d/apt-listbugs</code> troviamo questo blocco relativo:
<pre>
<pre>
Explanation: Pinned by apt-listbugs at Mon Jan 31 22:17:38 CET 2005
Explanation: Pinned by apt-listbugs at 2015-05-25 15:54:32 +0200
Explanation:  #288728: postfix gives up with warning: no MX host for xxxx.com has a valid
Explanation:  #782456: plymouth: With plymouth installed, starting the DM sometimes fails
A record
Package: plymouth
Explanation:  #285111: postfix: newaliases not working due to some library problem
Pin: version *
Explanation:  #291031: postfix: Upgrade from Postfix 2.1.4-5 to 2.1.5-4 fails #3
Pin-Priority: -30000
Explanation:  #292086: stock installed master.cf file causes postfix to fail to start
Package: postfix
Pin: version 2.1.4-5
Pin-Priority: 1000
</pre>
</pre>


al prossimo aggiornamento, per controllare se sono presenti nuove versioni di plymouth, si dovranno rimuovere queste indicazioni, altrimenti il pacchetto in questione verrà assunto sempre come 'aggiornato'.<br/>
Se non si sono fatte ulteriori modifiche al file <code>/etc/apt/preferences.d/apt-listbugs</code> lo si può tranquillamente eliminare prima di ogni aggiornamento.


al prossimo aggiornamento, per controllare se sono presenti nuove versioni di postfix, dovr� rimuovere queste indicazioni, altrimenti il pacchetto in questione verr� assunto sempre come 'aggiornato'.
{{Box|Nota|Nelle verioni meno recenti il file in cui apt-listbugs scriveva i pacchetti bloccati era <br/> <code>/etc/apt/preferences</code>}}
Se non sono mai state fatte modifiche al file '''/etc/apt/preferences''' (soprattutto per quanto riguarda pinning per l'utilizzo di pi� release insieme) lo si pu� tranquillamente eliminare prima di ogni aggiornamento.


== Conclusioni ==
<code>apt-listbugs</code> è senza dubbio uno strumento utilissimo, in quanto previene l'installazione di pacchetti che possono rendere inutilizzabile o instabile la nostra Debian Box.


L'utilizzo di apt-listbugs in modo manuale (richiamandolo direttamente da shell) � inutile, ma pu� servire (seguito dal parametro -h oppure consultando il manuale (man apt-listbugs)) per modificare il comportamento del programma (i parametri possono essere modificati nel file '''/etc/apt/apt.conf.d/10apt-listbugs''', anche se raccomando l'utilizzo delle opzioni di default, che fino ad ora si sono rivelate le migliori.
Ovviamente non viene a sostituire le normali visite al sito bugs.debian.org<sup>[[#Collegamenti esterni| [1]]]</sup>, dove sono elencati tutti i bug di tutti i pacchetti presenti in Debian (che si invita a controllare prima di chiedere aiuto per un comportamento strano di una applicazione).


==Collegamenti esterni==
[1] [http://bugs.debian.org bugs.debian.org]<br/>


==Concusione==
{{Autori
|Autore=[[User:MaXeR|MaXeR]]
|Verificata_da=
: [[Utente:S3v|S3v]] 16:32, 26 feb 2014 (CET)
: [[Utente:Ombra|Ombra]] 00:57, 21 dic 2015 (CET)
: [[Utente:Spoon|Spoon]] 16:38, 8 mar 2016 (CET)
: [[Utente:HAL 9000|HAL 9000]] 15:32, 14 lug 2019 (CEST)
|Numero_revisori=4
}}


apt-listbugs � senza dubbio uno strumento utilissimo, in quanto previene l'installazione di pacchetti che possono rendere inusabile o instabile la nostra Debian Box.
[[Categoria:Apt]]
Ovviamente non viene a sostituire le normali visite al sito http://bugs.debian.org, dove sono elencati tutti i bug di tutti i pacchetti presenti in Debian (che invito a controllare prima di chiedere aiuto per un comportamento strano di una applicazione).
3 581

contributi