Ich habe ein RPM-Paket auf meinem Fedora 17 installiert. Einige Pakete hatten viele Abhängigkeiten. Ich habe einige Pakete entfernt, aber ich habe vergessen, nicht verwendete Abhängigkeiten mit yum remove zu entfernen.
Wie kann ich das jetzt machen?
yum
Manpage angesehen: linux.die.net/man/8/yum ?Antworten:
Es ist nicht einfach. Wie kann man zwischen "einer Datei, die von etwas benötigt wurde, das ich seitdem entfernt habe" und "einer Datei, die von nichts anderem benötigt wird, was ich wirklich möchte" unterscheiden?
Mit dem
package-cleanup
Befehl aus demyum-utils
Paket können Sie "Blattknoten" in Ihrem Paketabhängigkeitsdiagramm auflisten. Dies sind Pakete, die entfernt werden können, ohne dass dies Auswirkungen auf andere Elemente hat:Dies wird eine Liste von "Bibliotheken" erzeugen, von denen nichts anderes abhängt. In den meisten Fällen können Sie diese Pakete sicher entfernen. Wenn Sie
--all
zur Befehlszeile hinzufügen :Sie erhalten auch Pakete, die nicht als Bibliotheken betrachtet werden, aber diese Liste wird so lang sein, dass sie wahrscheinlich nicht nützlich sein wird.
quelle
Wenn Sie ein Paket mit installieren
yum install
, sagen wirpdftk
, wird es in einer Menge von Abhängigkeiten ziehen:yum remove pdftk
entfernt nur dieses Paket und nicht alle Abhängigkeiten.Sie können sich aber alle 'Transaktionen' ansehen (installieren, entfernen usw.):
Und dann können Sie diese Transaktion rückgängig machen:
quelle
yum history
. Vielen Dank!Ab Fedora 18 können Sie einfach diesen Befehl verwenden
oder
Sie können den Befehl autoremove auch mit einem bestimmten Paket anwenden
Dadurch werden nicht benötigte Abhängigkeiten aus dem installierten Paket entfernt.
autoremove
ist sehr ein Pseudonym von, istremove --setopt=clean_requirements_on_remove=1
aber aus bestimmten Gründen immer noch undokumentiert.quelle
yum remove --setopt=clean_requirements_on_remove=1
funktioniert für mich in CentOSpackage-cleanup --leaves && yum autoremove
entfernte libvorbis und damit die Internet-Radio-Streaming "Ices" -Anwendung gestorben - wahrscheinlich, weil sie nicht in Repos ist und ich sie kompilieren musste.yum autoremove
funktioniert auch unter CentOS 7.6.Ich nahm Larsks Antwort einen Schritt weiter.
Dadurch werden alle Abhängigkeiten erfasst, die entfernt werden können, ohne dass sich dies auf etwas anderes auswirkt. Anschließend werden sie entfernt. Besser als eins nach dem anderen durchzugehen.
"-q" ist auf einigen Systemen nützlich, die andernfalls "yum einrichten" ausgeben, wodurch dieser Befehl yum entfernt. Und das ist nicht was du willst.
quelle
package-cleanup
gibt "Yum einrichten" auf meinem Computer aus, was dazu führte, dass Yum sich selbst entfernte. Ich versuche jetzt herauszufinden, wie ich das klären kann.-q
Option hinzu . Dies ist mir auch passiert: Dpackage-cleanup -q --leaves | xargs -r -l1 yum -y remove
Überspringt stillschweigend xargs, wenn die Ausgabe der Paketbereinigung leer ist. Dies ist nützlich für automatisierte Skripte wie ansible, chef, puppet, vagrantIn neueren Fedoras mit
dnf
können Siednf repoquery --unneeded
als Ersatz für verwendenpackage-cleanup --leaves
.quelle