Was ist Fedoras Äquivalent zu "apt-get purge"?

45

In Debian gibt es mindestens zwei Möglichkeiten, ein Paket zu löschen:

  • apt-get remove pkgname
  • apt-get purge pkgname

Der erste speichert systemweite Konfigurationsdateien (dh die in " / etc " gefundenen), der zweite nicht.

Was ist Fedoras Äquivalent zur zweiten Form purge? Oder vielleicht sollte ich lieber fragen, ob yum remove pkgnametatsächlich Konfigurationsdateien erhalten bleiben.

Tshepang
quelle

Antworten:

27

yum remove Es kann nicht garantiert werden, dass Konfigurationsdateien erhalten bleiben.

Wie im yum HOWTO angegeben :

In jedem Fall lautet die Befehlssyntax zum Entfernen von Paketen:

# yum remove package1 [package2 package3...]

Wie oben erwähnt, werden Paket1 und alle Pakete im Abhängigkeitsbaum entfernt, die von Paket1 abhängen, möglicherweise irreversibel, was Konfigurationsdaten betrifft .

Aktualisieren

Wie James betont, können Sie mit dem rpm -eBefehl ein Paket löschen, aber Sicherungskopien aller Konfigurationsdateien speichern, die sich geändert haben.

Weitere Informationen finden Sie unter Verwenden von RPM zum Löschen von Paketen . Speziell:

Es wird geprüft, ob eine der Konfigurationsdateien des Pakets geändert wurde. In diesem Fall werden Kopien davon gespeichert.

Justin Ethier
quelle
4
Das stimmt nicht wirklich, "rpm -e" entfernt die Konfigurationsdateien, wenn sie sich nicht geändert haben. Wenn sie geändert wurden, werden sie nach <Dateiname> .rpmsave verschoben und nicht gelöscht.
James Antill
9

Ich fand diese Antwort auf eine doppelte Frage in ServerFault mit dem Titel: yum Entsprechung von "apt-get purge" , die die einzige Methode darstellt, die ich gesehen habe und die das kann, was apt-get purge <pkg>unter Ubuntu / Debian funktioniert.

for package in package1 package2 package3
do
  echo "removing config files for $package"
  for file in $(rpm -q --configfiles $package)
  do
    echo "  removing $file"
    rm -f $file
  done
  rpm -e $package
done

Die einzige andere Methode, die ich mir vorstellen kann, besteht darin, die Ausgabe zu analysieren yum remove <pkg>und alle Dateien, die möglicherweise geändert wurden, manuell zu löschen. Als ich beispielsweise ElasticSearch RPM for 2.3 vor kurzem installiert habe, habe ich mehrere Dateien geändert, die mit diesem RPM verknüpft waren. Wenn ich es mit YUM entfernt habe, werden Meldungen in der Ausgabe wie folgt angezeigt:

warning: /etc/sysconfig/elasticsearch saved as /etc/sysconfig/elasticsearch.rpmsave
warning: /etc/elasticsearch/logging.yml saved as /etc/elasticsearch/logging.yml.rpmsave
warning: /etc/elasticsearch/elasticsearch.yml saved as /etc/elasticsearch/elasticsearch.yml.rpmsave

Diese können nach dem Entfernen mit YUM entweder per Skript oder von Hand gelöscht werden.

Referenz

slm
quelle
Dies könnte ein interessantes dnf-Plugin sein ...
mattdm
@mattdm - dieses Problem ist von Zeit zu Zeit aufgetaucht, wäre schön, wenn wir dies in der "RPM" -Welt tun könnten.
SLM
1

Es gibt kein Äquivalent für "Säubern", nur verwenden yum remove package.

Auch können Sie verwenden yum reinstall package, wenn Sie ein Paket neu installieren möchten ...


quelle
1
Tatsächlich ist, wie in Justin Ethiers Antwort erklärt , yum removeäquivalent zu apt-get purge.
Gilles 'SO- hör auf böse zu sein'
6
@ Gilles Justin Ethier sagt, es yum removesei nicht garantiert , dass Konfigurationsdateien erhalten bleiben. Das ist nicht dasselbe wie zu sagen, dass Konfigurationsdateien garantiert nicht erhalten bleiben (was bedeuten würde, dass sie äquivalent sind zu apt-get purge). Machst du diesen (viel) stärkeren Anspruch?
Eliah Kagan
@EliahKagan So verstehe ich das leckere Howto, das Justin zitiert. Ich bin mir nicht sicher, ob es richtig ist, das CentOS scheint das Gegenteil zu sagen.
Gilles 'SO - hör auf, böse
1
Ich denke, es ist undefiniertes Verhalten. Yum behält möglicherweise Konfigurationsdateien bei oder nicht.
m0j0
-2

Wenn Sie Konfigurationsdateien aus einem Programm entfernen möchten, das Sie kürzlich über ein RPM-System entfernt haben, müssen Sie nur Folgendes eingeben: yum clean all

Jared
quelle
2
Das ist falsch. Die Funktion "yum clean all" bereinigt lediglich zwischengespeicherte Metadaten, Spiegellisten usw., die von yum verwendet werden. Konfigurationsdateien werden nicht bearbeitet.
m0j0