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

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
mNessun oggetto della modifica
Nessun oggetto della modifica
Riga 1: Riga 1:
{{debianized}}
[[Categoria:Debianized]]
==Introduzione==
==Introduzione==
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.
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 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!


In questo HowTo vedremo come pacchettizzare Java, usando direttamente il binario di installazione disponibile sul sito della Sun!


==Cosa ci occorre==
==Installazione==
Provvediamo a scaricare i pacchetti java-package e fakeroot.
 
Per installare apt-listbugs, è sufficiente un
<pre>
<pre>
# apt-get install java-package fakeroot
# apt-get install apt-listbugs
</pre>
</pre>


E poi scarichiamo il jkd o jre dal sito ufficiale Sun:<br(>
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.
==Configurazione==
 
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).
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).
 


==Creazione del Pacchetto==
==Utilizzo==


Bene, siamo pronti a creare il pacchetto!!!
L'utilizzo base del programma è semplicissimo:
Posizioniamoci nella directory dove sono stati scaricati i binari di java e, da utente normale, diamo il seguente comando:
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>
$ fakeroot make-jpkg jdk-1_5_0_01-linux-i586.bin
Retrieving bug reports... Done
critical bugs of login (1:4.0.3-30.7 -> 1:4.0.3-30.8) <done>
#290803 - login: /var/log/btmp is created with insecure permissions
critical bugs of postfix (2.1.4-5 -> 2.1.5-5) <done>
#288728 - postfix gives up with warning: no MX host for xxxx.com has a valid A record
grave bugs of mysql-server (4.0.23-1 -> 4.0.23-3) <open>
#291378 - mysql-server: Security fixes pending in experimental version
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>
(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 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/>
'''<open>''' rappresenta un bug ancora aperto<br/>
 
Ecco una tabella riassuntiva delle categorie in cui sono divisi i bug:
; 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/>
; 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/>
; 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/>
; important : un bug che abbia un effetto pesante sull'usabilità del pacchetto, senza però renderlo inusabile per tutti.<br/>
; normal : il valore predefinito, utilizzabile per i bug normali.<br/>
; minor : un bug che non inficia l'usabilità del pacchetto e che è facile da correggere.<br/>
; wishlist : per ogni richiesta di cambiamento del programma non legata a bug.<br/>
(fonte: http://www.debian.org/Bugs/Developer#severities)
 
 
Apt-listbugs ci mostra prevalentemente quelli appartenenti alle prime due categorie.
 
Tornando ad apt-listbugs, in caso di bug rilevati, viene chiesto cosa fare.
Le opzioni disponibili sono:<br/>
; y : Continua l'installazione ignorando i bug trovati;<br/>
; n : Interrompe immediatamente l'installazione;<br/>
; <num> : Inserendo il numero del bug (quello preceduto da #) è possibile ottenere maggiori 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!
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''':
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):
<pre>
<pre>
$ su
Explanation: Pinned by apt-listbugs at Mon Jan 31 22:17:38 CET 2005
# dpkg -i sun-j2sdk1.5_1.5.0+update01_i386.deb
Explanation:  #288728: postfix gives up with warning: no MX host for xxxx.com has a valid
A record
Explanation:  #285111: postfix: newaliases not working due to some library problem
Explanation:  #291031: postfix: Upgrade from Postfix 2.1.4-5 to 2.1.5-4 fails #3
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>


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


Ora non ci resta che sistemare una ultima cosa: '''alternatives'''
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'.
(se precedentemente era stato installato un pacchetto non ufficiale di java)
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.
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==
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.


Con questi pochi e semplici passaggi, abbiamo installato java senza sporcare il sistema, e risolvendo il problema delle dipendenze!
==Conclusione==


Buon Java a tutti!!!
apt-listbugs è senza dubbio uno strumento utilissimo, in quanto previene l'installazione di pacchetti che possono rendere inusabile o instabile la nostra Debian Box.
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).




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

Versione delle 21:18, 2 gen 2010

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 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!


Installazione

Per installare apt-listbugs, è sufficiente un

# apt-get install apt-listbugs


Configurazione

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). 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: 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:

Retrieving bug reports... Done
critical bugs of login (1:4.0.3-30.7 -> 1:4.0.3-30.8) <done>
 #290803 - login: /var/log/btmp is created with insecure permissions
critical bugs of postfix (2.1.4-5 -> 2.1.5-5) <done>
 #288728 - postfix gives up with warning: no MX host for xxxx.com has a valid A record
grave bugs of mysql-server (4.0.23-1 -> 4.0.23-3) <open>
 #291378 - mysql-server: Security fixes pending in experimental version
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/?/...]


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>:
<done> rappresenta un bug corretto
<open> rappresenta un bug ancora aperto

Ecco una tabella riassuntiva delle categorie in cui sono divisi i bug:

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.
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.
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.
important
un bug che abbia un effetto pesante sull'usabilità del pacchetto, senza però renderlo inusabile per tutti.
normal
il valore predefinito, utilizzabile per i bug normali.
minor
un bug che non inficia l'usabilità del pacchetto e che è facile da correggere.
wishlist
per ogni richiesta di cambiamento del programma non legata a bug.

(fonte: http://www.debian.org/Bugs/Developer#severities)


Apt-listbugs ci mostra prevalentemente quelli appartenenti alle prime due categorie.

Tornando ad apt-listbugs, 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 il 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! 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: 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):

Explanation: Pinned by apt-listbugs at Mon Jan 31 22:17:38 CET 2005
Explanation:   #288728: postfix gives up with warning: no MX host for xxxx.com has a valid
A record
Explanation:   #285111: postfix: newaliases not working due to some library problem
Explanation:   #291031: postfix: Upgrade from Postfix 2.1.4-5 to 2.1.5-4 fails #3
Explanation:   #292086: stock installed master.cf file causes postfix to fail to start
Package: postfix
Pin: version 2.1.4-5
Pin-Priority: 1000


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'. 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.


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.

Conclusione

apt-listbugs è senza dubbio uno strumento utilissimo, in quanto previene l'installazione di pacchetti che possono rendere inusabile o instabile la nostra Debian Box. 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).



MaXeR