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

Vai alla navigazione Vai alla ricerca
(typo)
 
(typo)
Riga 1: Riga 1:
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.
==Introduzione==


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


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.


Per prima cosa dobbiamo preparare due files normalmente non presenti sulla nostra debianbox: si tratta dei file preferences e apt.conf.
==Installazione==
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...).


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


Creiamo il file preferences:
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:
<pre>
<pre>
# touch /etc/apt/preferences
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>


editiamolo col nostro editor di fiducia e inseriamo queste direttive:


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


Package: *
Tornando ad apt-listbugs, in caso di bug rilevati, viene chiesto cosa fare.
Pin: release a=testing
Le opzioni disponibili sono:<br/>
Pin-Priority: 600
; y : Continua l'installazione ignorando i bug trovati;<br/>
</pre>
; 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...).


Ora creiamo il file apt-conf
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>
# touch /etc/apt/apt.conf
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
</pre>
</pre>


editiamolo inserendo quanto segue:


<pre>
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'.
APT::Default-Release "unstable";
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.
APT::Cache-Limit 10000000;
Apt::Get::Purge;
APT::Clean-Installed;
APT::Get::Fix-Broken;
APT::Get::Fix-Missing;
APT::Get::Show-Upgraded "true";
</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.


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


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


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


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