3 581
contributi
m (aggiunta opzione --force-remove-reinstreq) |
(→Ricerche: nuova sottosezione con più esempi per le ricerche avanzate) |
||
Riga 31: | Riga 31: | ||
<pre>$ dpkg -l "*apt*"</pre> | <pre>$ dpkg -l "*apt*"</pre> | ||
==== Ricerche avanzate ==== | |||
<pre>$ dpkg-query -- | Per ricerche più avanzate, con la possibilità di selezionare i campi desiderati, si deve ricorrere esplicitamente al comando <code>dpkg-query</code>. | ||
Si noti che <code>${Version}</code> è una variabile interpretata da <code>dpkg-query</code> e non dalla [[bash|shell]], per questo è | |||
* Per esempio per ottenere soltanto una stringa con la versione di un pacchetto (''nomepacchetto''), utile in uno script: | |||
<pre>$ dpkg-query --showformat='${Version}\n' --show nomepacchetto</pre> | |||
(forme abbreviate: <code>-f</code> per <code>--showformat</code> e <code>-W</code> per <code>--show</code>) | |||
Si noti che <code>${Version}</code> è una variabile interpretata da <code>dpkg-query</code> e non dalla [[bash|shell]], per questo è racchiusa tra apici (apostrofi). | |||
* Per cercare le architetture di tutti i pacchetti precedentemente installati, basta il seguente formato e non specificare alcun pacchetto: | |||
<pre>$ dpkg-query --showformat='${Package;-40}${Architecture}' --show</pre> | |||
(dove in <code>${Package;-40}</code> si intendono riservare i primi 40 caratteri a questo campo, e il segno meno indica l'uso dell'orientamento a sinistra, anziché a destra) | |||
Mentre per restringerla a quelli correntemente installati, si può usare lo stato abbreviato (<code>${db:Status-Abbrev}</code>) e filtrare con <code>grep</code>: | |||
<pre>$ dpkg-query --showformat='${db:Status-Abbrev}${Package;-40}${Architecture}' --show | grep '^i' </pre> | |||
* Un altro esempio, questa volta con le opzioni abbreviate, per restituire la lista di tutti i pacchetti installati, mostrando se sono essenziali: | |||
<pre>$ dpkg-query -f '${db:Status-Abbrev}${Package;-40}Essential: ${Essential}\n' -W</pre> | |||
E per trovare solo quelli essenziali, basta filtrare righe e colonne con i comandi <code>grep</code> e <code>cut</code> (dopo aver separato i campi con una tabulazione <code>\t</code>): | |||
<pre>$ dpkg-query -f '${Package}\t${Essential}\n' -W | grep 'yes$' | cut -f 1</pre> | |||
{{Box | Pacchetti essenziali | Questo è anche l'unico modo per controllare quali pacchetti sono ritenuti essenziali da [[dpkg]] e dal sistema [[APT]], mentre per esempio la ricerca avanzata di [[aptitude]] considera essenziali, e quindi non rimovibili, anche altri pacchetti importanti, come lo stesso '''apt''': | |||
<pre>$ aptitude search "?essential"</pre>}} | |||
Per tutte le altre possibili informazioni da estrarre dai pacchetti precedentemente installati nel sistema si rimanda al manuale (<code>man dpkg-query</code>). | |||
=== Verifiche === | === Verifiche === |
contributi