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 foodipendeva da bare baz, quindi, apt-mark showmanualavrebbe 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-rdependsalcune 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