Es gibt viele Möglichkeiten, manuell installierte Pakete anzuzeigen apt, z. B.:
apt-mark showmanual
Aber manchmal ist diese Ausgabe zu viel. Zum Beispiel, wenn der Benutzer das Paket manuell installiert hat foo:
apt-get install foo
... und foohing davon ab barund würde bazdann apt-mark showmanualausgeben:
bar
baz
foo
Wie können wir nur die manuell installierten Pakete der obersten Ebene ( dh foo ) ohne ihre Abhängigkeiten ( dh nicht bazoder noch bar) auflisten?
Der folgende Code scheint zu funktionieren, aber ein paar hundert Mal GNU- parallel Aufrufe apt-rdependssind zu langsam (drei Stunden mit einer 4-Kern-CPU):
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