it-swarm.com.de

Wie kann ich Orphan Packages in Fedora entfernen?

Ich habe gerade von Ubuntu zu Fedora14 gewechselt. In Ubuntu hatten wir die apt-get autoremove Sache, um verwaiste/nicht verwendete Pakete zu entfernen. Was ist das Gegenstück in Fedora?

43
c0da

package-cleanup --quiet --leaves aus dem Paket yum-utils listet die Bibliothekspakete auf, auf die sich andere Pakete nicht verlassen. Leider ist es etwas übereifrig. Auf meinem System wurde beispielsweise vorgeschlagen, libvirt zu entfernen. Hinzufügen des --exclude-bin Argument hilft. Wenn Sie mit dem Vorschlag zufrieden sind, gehen Sie wie folgt vor, um die Pakete zu bereinigen:

# package-cleanup --quiet --leaves --exclude-bin | xargs yum remove -y
36

DNF, der Yum-Ersatz seit Fedora 22, bietet auch einen Unterbefehl autoremove, der nach dem Vorbild apt-get/yum autoremove lautet.

Beispiele:

# dnf autoremove

das versucht, alle automatisch installierten und ansonsten nicht verwendeten Abhängigkeitspakete zu entfernen - sollte ziemlich genau apt-get autoremove entsprechen.

# dnf autoremove examplepackage

dadurch werden das Beispielpaket und alle automatisch installierten (und ansonsten nicht verwendeten) Abhängigkeiten entfernt.

Yum

Yum hat den Befehl autoremove seit Fedora 19 und ist seit Fedora 20/RHEL 7 dokumentiert.

Die Verwendung ist analog zur dnf-Implementierung, z.

# yum autoremove

oder

# yum autoremove examplepackage

Ändern Sie das Verhalten von yum entfernt

Yum unterstützt eine Konfigurationsoption zum Ändern des Standardverhaltens des Unterbefehls remove (z. B. über /etc/yum.conf):

clean_requirements_on_remove=yes

yum.conf (5)

Wenn dies festgelegt ist, versucht das nächste yum remove Auch, automatisch installierte Abhängigkeiten zu entfernen, wenn sie von anderen Paketen nicht benötigt werden.

Sie können diese Option auch vorübergehend über Folgendes testen:

# yum --setopt=clean_requirements_on_remove=1 remove examplepackage

Problemumgehung für die alte Fedora-Version

(Für Fedora-Versionen, bei denen der Unterbefehl yum autoremove nicht verfügbar ist und/oder clean_requirements_on_remove Nicht funktioniert.)

Obwohl während der Installation von Paketen installierte Abhängigkeiten als solche markiert sind (scheint eine relativ neue Funktion von rpm/yum zu sein).

Sie können nicht benötigte Abhängigkeiten finden über:

$ package-cleanup --leaves -q --all \
    | xargs repoquery --installed --qf '%{nvra} - %{yumdb_info.reason}' \
    | grep -- '- dep' \
    | cut -d' ' -f1 > tmp

Diese Befehlszeile ist inspiriert von fenris02s Skript .

Nach der Überprüfung von tmp (und möglicherweise der Kuration) können Sie sie über Folgendes entfernen:

# xargs yum remove < tmp
33
maxschlepzig

sie müssen das yum Plugin "remove-with-Leaves" installieren:

# yum install yum-plugin-remove-with-leaves.noarch

einmal installiert:

# yum remove --remove-leaves package

viel Glück!

16
mrc
# package-cleanup --orphans >/tmp/junk

bearbeiten Sie die /tmp/junk Datei und entfernen Sie die erste Zeile, die informativ von der Befehlszeile ist, geben Sie Folgendes ein:

for file in `cat /tmp/junk`
do
  yum remove $file
done
8
Larry Mohr

HINWEIS: Diese Antwort ist korrekt, gilt jedoch nur für RHEL 7+ und Fedora 20 + (wobei Autoremove als neue Funktion hinzugefügt wurde).

# yum autoremove

Bestätigen Sie einfach, um die ausgewählten Pakete zu entfernen.

4
Chilly Milly

Eine andere Möglichkeit, diese Probleme nicht zu verursachen, ist die Verwendung von Transaktionen.

Nach der Einrichtung des Basissystems werden bei der Installation mit yum Transaktionen erstellt. Wenn Sie beabsichtigen, Dinge zu entfernen, setzen Sie die Transaktionen zurück.

https://docs.fedoraproject.org/en-US/Fedora/24/html/System_Administrators_Guide/sec-DNF-Transaction_History.html

0
Vamsi

In Fedora bedeutet das Orphan-Paket, dass keine Kandidaten-Repos aktualisiert werden müssen!

  1. Wenn die Orphan-Pakete von Ihnen generiert wurden, deaktivieren Sie yum.repos.d/some.conf.

    yum distro-sync
    
  2. Bei anderen Orphan-Paketen kann der Befehl gefährlich sein.

    yum remove $(package-cleanup --orphans)
    

    oder verwenden Sie einfach den Sicherheitsbefehl.

    yum remove name-of-page
    
0
firo

Aufbauend auf Larry Mohrs Antwort :

package-cleanup --orphans | sed '1d' | sed '/^ * /d' | sed '/Loading mirror speeds from cached hostfile/d' | xargs Sudo yum remove

(Beinhaltet das Überspringen für den schnellsten Spiegel, wenn Sie sich fragen.)

0
Bengt