Für jedes Paket, das ich installiert habe, möchte ich wissen, welche Pakete installiert werden, wenn ich es deinstalliere. Ein Beispiel für die Ausgabe, die ich brauche, ist ( package: list of deps
):
abc: foo bar
bcd: baz abc
bdd: baz fuubar
Anhängen
Wenn ich überprüfe, was wirklich entfernt werden würde, wenn ich das Paket ppp
mit entferne apt-get
:
$ echo $(apt-get --dry-run remove ppp | grep '^Remv ' | cut -d' ' -f2)
gnome-ppp mint-meta-xfce network-manager-pptp-gnome network-manager-pptp wvdial pppoeconf pppoe pptp-linux pppconfig ppp
Ich sehe, dass es sich von dem unterscheidet, was apt-cache
mir die Show gibt (was ich nicht für rekursive Abhängigkeiten halte):
$ apt-cache show ppp | grep '^Breaks: '
Breaks: network-manager (<= 0.8.0.999-1), network-manager-pptp (<= 0.8.0.999-1), pppdcapiplugin (<= 1:3.9.20060704+dfsg.1-1)
2 anhängen
Ist es dpkg --get-selections | cut -f1
eine zuverlässige Möglichkeit, eine Liste der installierten Pakete abzurufen, über die iteriert werden soll?
apt-get --dry-run remove
sieht im Grunde richtig aus. Möglicherweise fehlen einige automatisch installierte Pakete, die nur für automatisch installierte Pakete benötigt werden, die nur von dem Paket benötigt werden, das Sie entfernen. Halten Sie es deshalb nicht für eine passende Antwort?Antworten:
Du hast hier ein paar andere Fragen gestellt, ich hoffe, ich kann wenigstens bei einer oder zwei helfen.
Verwenden Sie,
dpkg
um alle installierten Pakete aufzulisten und in einer feldgetrennten Liste auszugebenUm nur die Paketliste ohne zusätzliche Felder abzurufen, können Sie sie an eine andere Stelle weiterleiten.
Wenn ich zum Beispiel einen alten Kernel entfernen möchte,
Der einfachste Weg, alle nicht benötigten Abhängigkeiten zu durchlaufen, ist mit
debfoster
. Es läuft interaktiv und geht durch, was Sie wollen, ihre Abhängigkeiten und kann entfernen oder auflisten, was keine rekursive Abhängigkeit ist.Um alle rekursiven Abhängigkeiten eines bestimmten Pakets aufzulisten,
Nachdem Sie ausgeführt haben
debfoster
, können Sie alle Abhängigkeiten überprüfen, die ein Paket auch hat,Eine wirklich gute Möglichkeit, verwaiste Pakete aufzulisten, ist mit
deborphan
. Führendeborphan
ohne Optionen, und es werden alle ‚verwaiste‘ Pakete aufzulisten. Ein 'Orphan' ist ein Paket, von dem nichts abhängt und das Sie nicht explizit installiert haben.Ich mag es auch, verwaiste Pakete nach einer Neuinstallation zu säubern. Nachdem ich bestimmte Pakete entfernt habe, können Sie
apt-get autoremove --purge
mitSchließlich kann es vorkommen
--purge
, dass das Paket "Reste" nicht mehr vorhanden ist und von den neueren Versionenapt-get
automatisch entfernt wird. Um alle "Reste" aus deinstallierten Paketen zu entfernen, führen SieWenn Sie nicht über die neue Version von verfügen
apt-get
, können Sie diese jederzeit mit diesen Befehlen entfernen. Sie sind fehlerhaft, wenn keine 'übrig gebliebenen' Dateien vorhanden sind. Es scheint, dass Autoclean gelegentlich Fehler machen kann.quelle
listet (unter anderem) diese (Laufzeit-) Abhängigkeiten auf. Dies ist normalerweise ausreichend, es sei denn, Sie führen es einer Maschine zur weiteren Verarbeitung zu. Wenn Sie es genau in dem von Ihnen angegebenen Format haben möchten, müssen Sie wahrscheinlich ein Skript schreiben.
quelle
apt-get remove -s packagename
. Das Auflisten aller installierten Pakete ist nurdpkg -l
.apt-get remove -s packagename
!Ich denke, Sie müssen fortfahren und eine Schleife für die gleiche Sache erstellen:
Natürlich Header entfernen.
quelle
apt-cache depends --recurse libtext