Есть много способов показать пакеты, установленные вручную apt, например:
apt-mark showmanual
Но иногда это слишком много. Например, если пользователь установил пакет вручную foo:
apt-get install foo
... и fooзависит от, barа bazзатем apt-mark showmanualбудет вывод:
bar
baz
foo
Как мы можем перечислить только пакеты верхнего уровня, установленные вручную ( то есть foo ) без их зависимостей ( то есть, нет baz, ни bar)?
Следующий код, кажется, работает, но вызов GNU несколько сотен раз слишком медленный (три часа с 4-ядерным процессором):parallelapt-rdepends
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