Apt-show-versions
Per chi come me utilizza un sistema misto (testing/sid) è ogni tanto utile sapere quanti e quali pacchetti provengono da quale release. Proprio dopo il recente aggiornamento a squeeze/sid mi sono trovato con diversi pacchetti provenienti da sid. Non tutti sono forse però "basilari" per il sistema; intendo dire, alcuni sono magari "prelevabili" da squeeze, senza "scomodare" sid.
Cercando in lungo e in largo tutte le espressioni regolari possibili con aptitude, non sono riuscito a trovare un buon metodo per ottenere il risultato voluto. Infine sono incappato in apt-show-versions, capendo subito che le mie ricerche avevano dato buon frutto.
Sintassi e utilizzo
$ apt-show-versions <nomepacchetto>
Ottenendo:
<nomepacchetto>/<release> <aggiornabilità> (uptodate o upgradeable from xxx to yyy) <versione_attuale>
Ad esempio:
$ apt-show-versions aptitude aptitude/squeeze uptodate 0.4.11.11-1
Come sopra, otteniamo che il pacchetto aptitude deriva da squeeze, è aggiornato ed è alla versione 0.4.11.11-1.
Per ottenere una lista di tutti i pacchetti basterà digitare il comando:
$ apt-show-versions
dunque senza nessun pacchetto specificato.
Alcuni esempi
Grazie all'utilizzo di qualche pipe (=eseguire un comando/applicazione dentro un altro) e grep (per "filtrare" il risultato) potremmo ora scegliere, contare, rimuovere, ... tutti i pacchetti di una particolare release.
Visualizzare tutti i pacchetti provenienti da sid
$ apt-show-versions | grep sid
Contare tutti i pacchetti provenienti da sid
$ apt-show-versions | grep sid | wc -l
Rimuovere tutti i pacchetti provenienti da sid
# aptitude remove `apt-show-versions | grep sid | cut -d '/' -f1`
dove con "cut -d '/' -f1", dividiamo la stringa dove c'è lo slash (/) e prendiamo solo il primo campo (-f1) per avere solo il nome del pacchetto senza le informazioni relative alla release, all'aggiornabilità e alla versione (che non sarebbero "digerite" da aptitude).
Pinning
ATTENZIONE al pinning! |
Dal momento che l'utilità del pacchetto si trova in un sistema misto, molto probabilmente, anche se non obbligatorio, utilizzerete il pinning per gestire i pacchetti provenienti da release diverse. In questo caso, per un pinning > 500, i pacchetti ad esempio in testing con una versione superiore in sid verranno considerati pacchetti appartenenti a sid ed aggiornabili. Dunque, al prossimo aggiornamento passeranno all'ultima versione disponibile trovandosi effettivamente in sid.
Per una "giovane" testing o un sistema misto sid/experimental è dunque consigliabile un pinning inferiore a 500 per la release superiore.
Referenze
Per tutte la altre possibilità/informazioni vi rimando ai vari man dei comandi utilizzati in questo how-to, più a questa discussione nel forum della comunità: http://forum.debianizzati.org/aptget-friends/etch-da-aggiorna-pinning-backports-o-cosa-altro-t34728.0.html e alla guida ufficiale sulla gestione dei pacchetti: http://www.debian.org/doc/manuals/quick-reference/ch-package.it.html.
Happy debian !