Apt-show-versions: differenze tra le versioni

m
verificata
m (verificata)
 
(5 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
{{Versioni compatibili}}
{{Versioni compatibili|Jessie|Stretch|Buster|Testing_2019|Unstable_2019}}
==Introduzione==
==Introduzione==
Per chi utilizza un sistema misto (testing/Sid) è senz'altro utile sapere quanti e quali pacchetti provengono da quale [[release]].
Per chi utilizza un sistema misto (testing/Sid) è senz'altro utile sapere quanti e quali pacchetti provengono da quale [[release]].
Riga 8: Riga 8:
<code>apt-show-versions</code> è un pacchetto opzionale, per cui per prima cosa va installato l'omonimo pacchetto. Per cui per esempio, con [[privilegi di amministrazione]]:
<code>apt-show-versions</code> è un pacchetto opzionale, per cui per prima cosa va installato l'omonimo pacchetto. Per cui per esempio, con [[privilegi di amministrazione]]:
<pre>
<pre>
# apt-get install apt-show-versions
# apt install apt-show-versions
</pre>
</pre>


Riga 40: Riga 40:
<pre>$ apt-show-versions | grep -E "/(suite|codename)\b"</pre>
<pre>$ apt-show-versions | grep -E "/(suite|codename)\b"</pre>
In questo modo si catturano entrambi i casi, senza dipendere dalle scelte effettuate nel file <code>/etc/apt/sources.list</code>.
In questo modo si catturano entrambi i casi, senza dipendere dalle scelte effettuate nel file <code>/etc/apt/sources.list</code>.
{{Box | grep | L'opzione -E attiva le espressioni regolari estese, in questo caso permettendo l'uso di alternative senza bisogno di backslash.
Il pattern precedente cerca tutte le release nella forma "/suite\b" oppure "/codename\b", dato che nell'output di <code>apt-sho-versions</code> le release sono precedute dal carattere '''<code>/</code>''' e sono seguite da uno spazio.
'''\b''' indica la fine della parola. Per esempio se si cercasse '''/jessie''' sarebbero catturati anche ''jessie-updates'' e ''jessie-backports'', mentre con '''/jessie\b''' si trovano soltanto i repository principali di ''jessie''.}}


Per esempio per visualizzare tutti i pacchetti provenienti da [[Sid]]/[[unstable]]:
Per esempio per visualizzare tutti i pacchetti provenienti da [[Sid]]/[[unstable]]:
Riga 53: Riga 59:


===Rimuovere tutti i pacchetti provenienti da Sid===
===Rimuovere tutti i pacchetti provenienti da Sid===
<pre># apt-get remove $(apt-show-versions | grep -E "/(unstable|sid)\b" | cut -d / -f1)</pre>
<pre># apt remove $(apt-show-versions | grep -E "/(unstable|sid)\b" | cut -d / -f1)</pre>


dove con <code>cut -d '/' -f1</code>, dividiamo la stringa dove c'è lo slash (/) e ne prendiamo solo il primo campo (<code>-f1</code>) per avere il nome del pacchetto senza le informazioni relative alla release, all'aggiornabilità e alla versione (che non sarebbero accettate da apt-get).
dove con <code>cut -d '/' -f1</code>, dividiamo la stringa dove c'è lo slash (/) e ne prendiamo solo il primo campo (<code>-f1</code>) per avere il nome del pacchetto senza le informazioni relative alla release, all'aggiornabilità e alla versione (che non sarebbero accettate da apt-get).
Riga 63: Riga 69:
Ulteriori risorse:
Ulteriori risorse:
* manpage relative ai comandi citati in questa guida;
* manpage relative ai comandi citati in questa guida;
<!-- COMMENTATO - NON PIU' RAGGIUNGIBILE:
* la [http://www.debian.org/doc/manuals/quick-reference/ch-package.it.html guida ufficiale] Debian, nella sezione dedicata alla gestione dei pacchetti;
* la [http://www.debian.org/doc/manuals/quick-reference/ch-package.it.html guida ufficiale] Debian, nella sezione dedicata alla gestione dei pacchetti;
-->
* una interessante [http://forum.debianizzati.org/viewtopic.php?f=23&t=34728 discussione] sul forum di Debianizzati.
* una interessante [http://forum.debianizzati.org/viewtopic.php?f=23&t=34728 discussione] sul forum di Debianizzati.


==Alternative simili==
==Alternative simili==
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 [[apt-cache]]:
<pre> $ apt-cache policy nomepacchetto </pre>
<pre> $ apt-cache policy nomepacchetto </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 [[repository]] di provenienza sia il valore di pinning attribuito.
Questo, come <code>apt-show-versions</code> 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 85: Riga 93:
         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, che mostra sempre i risultati per [[suite]]. Ad esempio, per vedere i pacchetti provenienti da unstable (la ''suite'' di Sid) 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 <code>apt-show-versions</code>):
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 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).
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).
Riga 101: Riga 109:
|Estesa_da=
|Estesa_da=
|Verificata_da=
|Verificata_da=
:[[Utente:HAL 9000|HAL 9000]] 21:20, 11 mag 2015 (CEST)
:[[Utente:HAL 9000|HAL 9000]] 15:24, 14 lug 2019 (CEST)
|Numero_revisori=1
|Numero_revisori=1
}}
}}


[[Categoria:Apt]]
[[Categoria:Apt]]
3 581

contributi