Dpkg: differenze tra le versioni

1 820 byte aggiunti ,  8 apr 2015
→‎Ricerche: nuova sottosezione con più esempi per le ricerche avanzate
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>


* Per usi più avanzati si consulti il manuale di <code>dpkg-query</code>. Per esempio per ottenere soltanto una stringa con la versione di un pacchetto (''nomepacchetto''), utile in uno script:
==== Ricerche avanzate ====
<pre>$ dpkg-query --format "\${Version}\n" --show nomepacchetto</pre>
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 è preceduta dal carattere di backslash. Per altre informazioni da estrarre si rimanda al manuale (<code>man dpkg-query</code>).
 
* 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 ===
3 581

contributi