Apt-show-versions: differenze tra le versioni

m
nessun oggetto della modifica
m (+ template "Autori")
mNessun oggetto della modifica
Riga 2: Riga 2:
==Introduzione==
==Introduzione==


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.
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.<br/>
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, e ho capito subito che le mie ricerche avevano dato buon frutto.<br/>
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 <code>apt-show-versions</code>, e ho capito subito che le mie ricerche avevano dato buon frutto.<br/>


==Sintassi e utilizzo==
==Sintassi e utilizzo==
Riga 50: Riga 50:
{{ warningbox | al pinning!}}
{{ warningbox | al pinning!}}


Dal momento che l'utilità del pacchetto si trova in un sistema misto, molto probabilmente anche se non necessariamente, utilizzerete il pinning per gestire i pacchetti provenienti da release diverse. In questo caso, per un pinning <code>> 500</code> 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.<br/>
Dal momento che l'utilità del pacchetto si trova in un sistema misto, molto probabilmente anche se non necessariamente, utilizzerete il [[pinning]] per gestire i pacchetti provenienti da release diverse. In questo caso, per un pinning <code>> 500</code> 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.<br/>
Per una "giovane" testing o un sistema misto Sid/experimental è dunque consigliabile un pinning inferiore a 500 per la release superiore.
Per una "giovane" testing o un sistema misto Sid/experimental è dunque consigliabile un pinning inferiore a 500 per la release superiore.


Riga 62: Riga 62:
Soprattutto in caso di un sistema con pinning dei pacchetti si suggerisce anche l'utilizzo del comando:
Soprattutto in caso di un sistema con pinning dei pacchetti si suggerisce anche l'utilizzo del comando:
<pre> $ apt-cache policy $pacchetto </pre>
<pre> $ apt-cache policy $pacchetto </pre>
Questo, come ''apt-show-versions'' mostra la versione del pacchetto installata ed i possibili upgrade, inoltre indica per ogni possibile versione del medesimo sia il reposity di provenienza sia il valore di pinning attribuito.
Questo, come ''apt-show-versions'' mostra la versione del pacchetto installata ed i possibili upgrade, inoltre indica per ogni possibile versione del medesimo sia il [[repository]] di provenienza sia il valore di pinning attribuito.


Ad esempio, sul mio sistema:
Ad esempio, sul mio sistema:
Riga 78: Riga 78:
         10 http://ftp.it.debian.org stable/main Packages</pre>
         10 http://ftp.it.debian.org stable/main Packages</pre>


Un ulteriore alternativa è l'utilizzo di aptitude con versions. Ad esempio, per vedere i pacchetti provenienti da unstable sul proprio sistema:
Un'ulteriore alternativa è l'utilizzo di aptitude con versions. Ad esempio, per vedere i pacchetti provenienti da unstable sul proprio sistema:


<pre>$ aptitude versions --group-by=none ~i | grep unstable</pre>
<pre>$ aptitude versions --group-by=none ~i | grep unstable</pre>


in questo modo cerchiamo le versioni di tutti i pacchetti installati (~i), visualizzando per ogni riga il nome del pacchetto con la versione e la provenienza (--group-by=none) e filtrando con un semplice "grep" le versioni che provengono da "unstable" appunto. Se si volesse passare il tutto ad esempio allo stesso aptitude per rimuovere tutti i pacchetti in unstable (v. esempio con apt-show-versions):
in questo modo cerchiamo le versioni di tutti i pacchetti installati (~i), visualizzando per ogni riga il nome del pacchetto con la versione e la provenienza (--group-by=none) e filtrando con un semplice "grep" le versioni che provengono da "unstable" appunto. Se si volesse passare il tutto ad esempio allo stesso aptitude per rimuovere tutti i pacchetti in unstable (v. esempio con <code>apt-show-versions</code>):


<pre># aptitude remove $(aptitude versions --group-by=none ~i | grep unstable | awk '{if ($2=="A") print $3; else print $2}')</pre>
<pre># aptitude remove $(aptitude versions --group-by=none ~i | grep unstable | awk '{if ($2=="A") print $3; else print $2}')</pre>


siamo "costretti" ad utilizzare awk (al posto di cut) in quanto i primi indici delle linee potrebbero essere "i" e poi <nome_pacchetto> oppure "i A" <nome_pacchetto> se quest'ultimo è stato installa automaticamente e dunque come dipendenza. awk ci permette dunque di inserire la "clausola" di verificare se è presente appunto il carattere "A" come secondo elemento (ricordo che awk utilizza di default gli spazi come delimitatori) e di stampare dunque il terzo elemento (dunque il nome del pacchetto, altrimenti quest'ultimo come secondo elemento).
siamo "costretti" ad utilizzare awk (al posto di cut) in quanto i primi indici delle linee potrebbero essere "i" e poi <nome_pacchetto> oppure "i A" <nome_pacchetto> se quest'ultimo è stato installato automaticamente e dunque come dipendenza. awk ci permette dunque di inserire la "clausola" di verificare se è presente appunto il carattere "A" come secondo elemento (ricordo che awk utilizza di default gli spazi come delimitatori) e di stampare dunque il terzo elemento (dunque il nome del pacchetto, altrimenti quest'ultimo come secondo elemento).


Happy debian !
Happy debian !
6 999

contributi