Old:APT uso avanzato: mixare releases diverse: differenze tra le versioni

nessun oggetto della modifica
(typo)
Nessun oggetto della modifica
Riga 1: Riga 1:
==Introduzione==
Spesso abbiamo la necessit� di installare la nuova versione di un pacchetto di cui proprio non possiamo fare a meno, che non � disponibile per il rilascio di Debian che abbiamo installato.


Spesso ci capitato di installare dei pacchetti contenenti dei bug, conosciuti anche prima del nostro download.
Il caso pi� frequente probabilmente quello di un' installazione di Sarge con la necessit� di installare anche pacchetti presenti solo in Unstable o in Experimental, oppure di voler usare un repository con pacchetti particolari, ma compilati per una release di Debian diversa dalla nostra.
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!


APT nostro fido alleato anche in questi frangenti, permettendoci di utilizzare fonti per pacchetti di releases diverse (e soddisfarne le dipendenze) senza costringerci ad un upgrade dell' intera distribuzione e senza dover impazzire per risolvere conflitti e incosistenze.


==Installazione==
Per prima cosa dobbiamo preparare due files normalmente non presenti sulla nostra debianbox: si tratta dei file preferences e apt.conf.
 
Questi due file istruiranno APT su come gestire le dipendenze dei pacchetti, informandolo su come comportarsi in caso di conflitti e altri problemi.
Per installare apt-listbugs, � sufficiente un
<pre>
# apt-get install apt-listbugs
</pre>


In questo how-to mostrer come far convivere Sarge e Sid sulla stessa macchina, ma le istruzioni sono facilmente riportabili anche ad altre situazioni (unstable + experimental, woody + sarge, woody + unstable, woody + sarge + sid, ecc...).


==Configurazione==
Assicuriamoci di essere l' utente root e procediamo.


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).
Creiamo il file preferences:
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:
<pre>
<pre>
Retrieving bug reports... Done
# touch /etc/apt/preferences
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>


editiamolo col nostro editor di fiducia e inseriamo queste direttive:


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/>
<pre>
'''<done>''' rappresenta un bug corretto<br/>
Package: *
'''<open>''' rappresenta un bug ancora aperto<br/>
Pin: release a=unstable
Pin-Priority: 650


Ecco una tabella riassuntiva delle categorie in cui sono divisi i bug:
Package: *
; 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/>
Pin: release a=testing
; 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/>
Pin-Priority: 600
; 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/>
</pre>
; 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)


Ora creiamo il file apt-conf


Apt-listbugs ci mostra prevalentemente quelli appartenenti alle prime due categorie.
<pre>
 
# touch /etc/apt/apt.conf
Tornando ad apt-listbugs, in caso di bug rilevati, viene chiesto cosa fare.
</pre>
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 #) 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!
editiamolo inserendo quanto segue:
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>
Explanation: Pinned by apt-listbugs at Mon Jan 31 22:17:38 CET 2005
APT::Default-Release "unstable";
Explanation:   #288728: postfix gives up with warning: no MX host for xxxx.com has a valid
APT::Cache-Limit 10000000;
A record
Apt::Get::Purge;
Explanation:   #285111: postfix: newaliases not working due to some library problem
APT::Clean-Installed;
Explanation:   #291031: postfix: Upgrade from Postfix 2.1.4-5 to 2.1.5-4 fails #3
APT::Get::Fix-Broken;
Explanation:   #292086: stock installed master.cf file causes postfix to fail to start
APT::Get::Fix-Missing;
Package: postfix
APT::Get::Show-Upgraded "true";
Pin: version 2.1.4-5
Pin-Priority: 1000
</pre>
</pre>


Ora non ci resta che aggiungere i repository necessari al file /etc/apt/sources.list assicurandoci di avere un repositry per Sarge ed uno per Sid.


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'.
Facciamo l' update del database dei pacchetti:
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.


<pre>
# apt-get update
</pre>


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.
D'ora in avanti avremo due possibilit� per installare un nuovo pacchetto: il metodo che usiamo di solito e cio� apt-get install nome_pacchetto oppure il comando apt-get install -t versione_di_debian nome_pacchetto che provveder� a installare il pacchetto da noi richiesto per la versione specificata (versione_debian), risolvendo automaticamente le dipendenze.
 
==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).


Happy debian!


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

contributi