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

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
m (verificata)
 
(22 versioni intermedie di 9 utenti non mostrate)
Riga 1: Riga 1:
{{debianized}}
{{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!


==Introduzione==
<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.
Spesso, per vari motivi, � necessario installare Java su una macchina Debian...
Sicuramente tutti gli utenti avranno notato che non c'�, nel repository ufficiale, un pacchetto contenente j2se o j2dk ufficiali della SUN.
Sono, invece, presenti i compilatori alternativi, come gcj, kaffe, kjc, javacc....
Per�, se volessimo avere il compilatore e/o l'interprete 'originale' della SUN? come possiamo fare?


Il primo modo che salta agli occhi � di installarlo in /opt e poi sistemare il $PATH...ma la soluzione, giustamente, non piace a tutti, in quanto 'sporca' il sistema e, cosa che crea parecchi problemi, genera dei problemi con le dipendenze dei pacchetti, visto che molti dei pacchetti che richiedono java per funzionare non lo trovano installato.
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.


In questo HowTo vedremo come pacchettizzare Java, usando direttamente il binario di installazione disponibile sul sito della Sun!
== Installazione ==
Per installare <code>apt-listbugs</code>, è sufficiente con [[privilegi di amministrazione]]:
<pre>
# apt install apt-listbugs
</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.


==Cosa ci occorre==
Nel file <code>/etc/apt/apt.conf.d/10aptlistbugs</code> è di particolare importanza la riga:
Provvediamo a scaricare i pacchetti java-package e fakeroot.
<pre>
<pre>
# apt-get install java-package fakeroot
AptListBugs::Severities "critical,grave,serious";
</pre>
</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''.


E poi scarichiamo il jkd o jre dal sito ufficiale Sun:<br(>
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.
1.5: http://java.sun.com/j2se/1.5.0/download.jsp<br/>
1.4: http://java.sun.com/j2se/1.4.2/download.html
 
Una volta terminato il download, saremo pronti per proseguire.


==Creazione del Pacchetto==
== 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.


Bene, siamo pronti a creare il pacchetto!!!
=== Utilizzo automatico ===
Posizioniamoci nella directory dove sono stati scaricati i binari di java e, da utente normale, diamo il seguente comando:
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).
In caso di presenza di bug, mostrerà a video la lista di quelli presenti (sia aperti che chiusi); ecco un esempio:
<pre>
<pre>
$ fakeroot make-jpkg jdk-1_5_0_01-linux-i586.bin
Recupero delle segnalazioni di bug... Fatto
Analisi delle informazioni... Fatto
Bug critical di plymouth (-> 0.9.0-9) <Aperti>
b1 - #782456 - plymouth: With plymouth installed, starting the DM sometimes fails
Riepilogo:
plymouth (1 bug)
Installare/aggiornare i precedenti pacchetti? [Y/n/?/...]
</pre>
</pre>
(o il nome del pacchetto scaricato...in questo caso ho pacchettizzato il jdk 1.5.0)
al comando '''make-jpkg''' possibile passare i seguenti parametri:<br/>
; --full-name <name> : Nome del Maintainer<br/>
; --email <email> : Email del Maintainer<br/>
; --changes : Indica che il processo deve creare un file .changes<br/>
; --help : Visualizza un piccolo help contenente i comandi qui illustrati<br/>
; --version : Stampa a video la versione


Una volta terminato il processo di generazione del pacchetto, provvediamo a fare quanto segue:
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/>
'''<done>''' rappresenta un bug corretto<br/>
'''<open>''' rappresenta un bug ancora aperto<br/>
[[Severità | Qui]] è visibile la descrizione dei livelli di gravità dei bug (severities).
 
Di default <code>apt-listbugs</code> mostrerà i bug appartenenti alle prime tre categorie. In caso di bug rilevati, viene chiesto cosa fare.
Le opzioni disponibili sono:<br/>
; <code>y</code>: continua l'installazione ignorando i bug trovati;<br/>
; <code>n</code>: interrompe immediatamente l'installazione;<br/>
; <code><num></code>: inserendo il numero del bug (quello preceduto da #) è possibile ottenere maggiori informazioni riguardo al bug;<br/>
; <code>r</code>: mostra la lista dei bug (comodo dopo la visualizzazione dei dettagli, ad esempio);<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/>
; <code>p <pkg></code>: esegue il pinning del pacchetto indicato;<br/>
; <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).
 
Il funzionamento, quindi, è molto semplice: basta leggere con attenzione la lista dei bug riscontrati ed agire di conseguenza!<br/>
Nel caso di pinning di anche un solo pacchetto è necessario ricominciare il processo di aggiornamento/installazione.
 
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.
 
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 <code>/etc/apt/preferences.d/apt-listbugs</code> troviamo questo blocco relativo:
<pre>
<pre>
$ su
Explanation: Pinned by apt-listbugs at 2015-05-25 15:54:32 +0200
# dpkg -i sun-j2sdk1.5_1.5.0+update01_i386.deb
Explanation:  #782456: plymouth: With plymouth installed, starting the DM sometimes fails
Package: plymouth
Pin: version *
Pin-Priority: -30000
</pre>
</pre>


Ovviamente sostituendo 'sun-j2sdk1.5_1.5.0+update01_i386.deb' con il nome del pacchetto appena creato!
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 ci sono problemi, relativamente ad una dipendenza con un nome simile a 'sun-j2sdk1.5debian', � possibile sistemare tutto con il comando
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.
<pre>
# apt-get install sun-j2sdk1.5debian
</pre>


Ora non ci resta che sistemare una ultima cosa: '''alternatives'''
{{Box|Nota|Nelle verioni meno recenti il file in cui apt-listbugs scriveva i pacchetti bloccati era <br/> <code>/etc/apt/preferences</code>}}
(se precedentemente era stato installato un pacchetto non ufficiale di java)
Date il comando
<pre>
# update-alternatives --config java
</pre>
(uguale procedimento anche per javac, javadoc ed eventualmente altri eseguibili java)
e selezionate 'quale java' utilizzare!


==Conclusioni==
== 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.


Con questi pochi e semplici passaggi, abbiamo installato java senza sporcare il sistema, e risolvendo il problema delle dipendenze!
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).


Buon Java a tutti!!!
==Collegamenti esterni==
[1] [http://bugs.debian.org bugs.debian.org]<br/>


{{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
}}


---- [[User:MaXeR|MaXeR]]
[[Categoria:Apt]]

Versione attuale delle 13:32, 14 lug 2019

Debian-swirl.png Versioni Compatibili

Debian 8 "jessie"
Debian 9 "stretch"
Debian 10 "buster"

Introduzione

Spesso ci è capitato di installare dei pacchetti contenenti dei bug, conosciuti anche prima del nostro download. Prima di installare un pacchetto, infatti, sarebbe opportuno fare una visitina su questo sito [1], 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? 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

Per installare apt-listbugs, è sufficiente con privilegi di amministrazione:

# apt install apt-listbugs

Configurazione

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

Nel file /etc/apt/apt.conf.d/10aptlistbugs è di particolare importanza la riga:

AptListBugs::Severities "critical,grave,serious";

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.

Se si vuol disabilitare la ricerca dei bug automatica da parte di apt-listbugs ad ogni aggiornamento/rimozione dei pacchetti, basta commentare tutte le righe presenti nel file /etc/apt/apt.conf.d/10apt-listbugs , aggiungendo i due caratteri // a inizio di ogni riga. Così facendo il programma sarà utilizzabile soltanto manualmente.

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 apt-listbugs da linea di comando. Utile per conoscere tutti bug (e il loro stato) relativi ad un pacchetto.

Utilizzo automatico

Se non disabilitato, ogni volta che aggiorniamo o installiamo un pacchetto, 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:

Recupero delle segnalazioni di bug... Fatto
Analisi delle informazioni... Fatto
Bug critical di plymouth (-> 0.9.0-9) <Aperti>
 b1 - #782456 - plymouth: With plymouth installed, starting the DM sometimes fails
Riepilogo:
 plymouth (1 bug)
Installare/aggiornare i precedenti pacchetti? [Y/n/?/...]

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>:
<done> rappresenta un bug corretto
<open> rappresenta un bug ancora aperto
Qui è visibile la descrizione dei livelli di gravità dei bug (severities).

Di default apt-listbugs mostrerà i bug appartenenti alle prime tre categorie. In caso di bug rilevati, viene chiesto cosa fare. Le opzioni disponibili sono:

y
continua l'installazione ignorando i bug trovati;
n
interrompe immediatamente l'installazione;
<num>
inserendo il numero del bug (quello preceduto da #) è possibile ottenere maggiori informazioni riguardo al bug;
r
mostra la lista dei bug (comodo dopo la visualizzazione dei dettagli, ad esempio);
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;
p <pkg>
esegue il pinning del pacchetto indicato;
i
ignora il bug corrispondente a (per evitare il pinning di pacchetti il cui bug è segnato come "done");
?
mostra un piccolo help con le opzioni utilizzabili;
w
mostra il report bug in html (mai usato).

Il funzionamento, quindi, è molto semplice: basta leggere con attenzione la lista dei bug riscontrati ed agire di conseguenza!
Nel caso di pinning di anche un solo pacchetto è necessario ricominciare il processo di aggiornamento/installazione.

Se si effettua il pinning di uno o più pacchetti, esso sarà annotato nel file /etc/apt/preferences.d/apt-listbugs. Sarà necessario al prossimo aggiornamento rimuoverlo dal file in questione, altrimenti esso sarà sempre assunto come aggiornato e non più proposto per l'aggiornamento.

Installando plymouth è stato segnalato un bug con severità critical che ne compromette il funzionamento, per cui si è deciso di far eseguire ad apt-listbugs il pinning del pacchetto. Nel file /etc/apt/preferences.d/apt-listbugs troviamo questo blocco relativo:

Explanation: Pinned by apt-listbugs at 2015-05-25 15:54:32 +0200
Explanation:   #782456: plymouth: With plymouth installed, starting the DM sometimes fails
Package: plymouth
Pin: version *
Pin-Priority: -30000

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'.
Se non si sono fatte ulteriori modifiche al file /etc/apt/preferences.d/apt-listbugs lo si può tranquillamente eliminare prima di ogni aggiornamento.

Info.png Nota
Nelle verioni meno recenti il file in cui apt-listbugs scriveva i pacchetti bloccati era
/etc/apt/preferences


Conclusioni

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

Ovviamente non viene a sostituire le normali visite al sito bugs.debian.org [1], 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] bugs.debian.org




Guida scritta da: MaXeR Swirl-auth100.png Guida Debianized
Estesa da:
Verificata da:
S3v 16:32, 26 feb 2014 (CET)
Ombra 00:57, 21 dic 2015 (CET)
Spoon 16:38, 8 mar 2016 (CET)
HAL 9000 15:32, 14 lug 2019 (CEST)

Verificare ed estendere la guida | Cos'è una guida Debianized