Esistono molti modi per mostrare i pacchetti installati manualmente utilizzando apt
, ad esempio:
apt-mark showmanual
Ma a volte quell'output è troppo. Ad esempio se l'utente ha installato manualmente il pacchetto foo
:
apt-get install foo
... e foo
dipendeva da bar
e baz
, quindi, apt-mark showmanual
avrebbe prodotto:
bar
baz
foo
Come possiamo elencare solo i pacchetti di livello superiore installati manualmente ( cioè foo
) senza le loro dipendenze ( cioè no baz
, né bar
)?
Il seguente codice sembra funzionare, ma GNU che parallel
chiama apt-rdepends
alcune centinaia di volte è troppo lento (tre ore con una CPU a 4 core):
apt-mark showmanual |
tee /tmp/foo |
parallel "apt-rdepends -f Depends,PreDepends,Suggests,Recommends {} |
tail +2" 2> /dev/null |
tr -s ' ' '\n' |
grep -v '[():]' |
sort -Vu |
grep -wv -f - /tmp/foo