Mir ist gerade aufgefallen, dass ich nicht sicher bin, wie ich mit Apt eine Bereinigung durchführe, bei der auch alle Abhängigkeiten gelöscht werden. Ich lese hier und da und bin mir immer noch nicht sicher, ob ich diese Kandidaten habe:
apt purge --auto-remove <packagename>
und (nachdem zuerst einige Pakete gelöscht wurden):
apt autoremove --purge
Sind sie richtig? Gleichwertig? Gibt es einen besseren Weg?
Antwort1
Sie sind beide richtig, aber nicht ganz gleichwertig.
apt purge --auto-remove <packagename>
Bereinigungen packagename
und alle Pakete, die durch die Entfernung unnötig geworden sind, sowie alle anderen Pakete, die nicht benötigt werden.
apt autoremove --purge
löscht alle Pakete, die nicht erforderlich sind (als „automatisch installiert“ markiert und ohne abhängige Pakete).
Die erste Form verwenden Sie, wenn Sie einzelne Pakete bearbeiten; bei der zweiten Form handelt es sich um eine Bereinigungsoperation für alle Pakete.
Sie können APT::Get::AutomaticRemove
in Ihrer apt
Konfiguration auch die Option apt
„Immer automatisch entfernen“ aktivieren (oder verwenden aptitude
, das sich standardmäßig so verhält).
Antwort2
Die vom OP vorgeschlagenen Befehle und dievorhandene Antwortsind korrekt, insbesondere laut Manpage, aber es stellt sich heraus, apt
dass das Verhalten etwas flexibler ist, als die Dokumentation vermuten lässt.
Um die Befehlszeile beim Entfernen eines Pakets und seiner automatisch installierten Abhängigkeiten übersichtlicher zu gestalten,dürfenGeben Sie dem Autoremove-Befehl einen Paketnamen an, wie in apt autoremove <pkg>
. In diesem Fall verhält es sich wie apt remove --autoremove <pkg>
. Somit erzeugen apt autoremove --purge <pkg>
und apt purge --autoremove <pkg>
beide das gleiche Ergebnis.
Im weiteren Verlauf apt autopurge <pkg>
verhält es sich genauso wie die kanonische Form apt remove --purge --autoremove <pkg>
und scheint die kompakteste Möglichkeit zu sein, eine rekursive Bereinigung zu erreichen.
Die Frage, ob dieses Verhalten dokumentiert werden soll oder nicht, wurdewar umstrittenunter den Entwicklern.