Existem várias maneiras de mostrar os pacotes instalados manualmente apt
, como:
apt-mark showmanual
Mas, às vezes, esse resultado é demais. Por exemplo, se o usuário instalou o pacote manualmente foo
:
apt-get install foo
... e foo
dependia bar
e baz
, em seguida apt-mark showmanual
, produziria:
bar
baz
foo
Como podemos listar apenas os pacotes de nível superior instalados manualmente ( ie foo
) sem suas dependências ( ie não baz
, nem bar
)?
O código a seguir parece funcionar, mas a chamada GNU algumas centenas de vezes é muito lenta (três horas com uma CPU de 4 núcleos):parallel
apt-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