Jaki jest odpowiednik „apt-get purge” w Fedorze?

45

W Debianie istnieją co najmniej dwa sposoby usunięcia pakietu:

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

Pierwszy zachowuje ogólnosystemowe pliki konfiguracyjne (tj. Te znalezione w „ / etc ”), a drugi nie.

Jaki jest odpowiednik drugiej formy Fedory purge? A może powinienem raczej zapytać, czy yum remove pkgnamefaktycznie zachowuje pliki konfiguracyjne.

tshepang
źródło

Odpowiedzi:

27

yum remove nie ma gwarancji zachowania plików konfiguracyjnych.

Jak stwierdzono w mniam HOWTO :

W każdym razie składnia polecenia usuwania pakietu jest następująca:

# yum remove package1 [package2 package3...]

Jak wspomniano powyżej, usuwa pakiet 1 i wszystkie pakiety w drzewie zależności, które zależą od pakietu 1, być może nieodwracalnie, jeśli chodzi o dane konfiguracyjne .

Aktualizacja

Jak podkreśla James, możesz użyć rpm -epolecenia, aby skasować pakiet, ale zapisać kopie zapasowe wszystkich zmienionych plików konfiguracyjnych.

Aby uzyskać więcej informacji, zobacz Korzystanie z RPM do usuwania pakietów . W szczególności:

Sprawdza, czy którykolwiek z plików konfiguracyjnych pakietu został zmodyfikowany. Jeśli tak, zapisuje ich kopie.

Justin Ethier
źródło
4
To nie do końca prawda, „rpm -e” usunie pliki konfiguracyjne, jeśli się nie zmieniły. Jeśli zostały zmienione, są przenoszone do <nazwa_pliku> .rpmsave i nie są usuwane.
James Antill,
9

Znalazłem odpowiedź na zduplikowane pytanie na ServerFault zatytułowane: mniam odpowiednik „apt-get purge”, który zapewnia jedyną metodę, jaką widziałem, która może zrobić to, co apt-get purge <pkg>działa na Ubuntu / Debian.

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

Jedyną inną metodą, jaką mogę tutaj wymyślić, jest przeanalizowanie danych wyjściowych, yum remove <pkg>a następnie ręczne usunięcie plików, które mogły zostać zmodyfikowane. Na przykład, kiedy niedawno zainstalowałem RPM ElasticSearch dla 2.3, zmodyfikowałem kilka plików, które były powiązane z tym RPM. Po usunięciu go za pomocą YUM otrzymasz w wynikach wiadomości takie jak to:

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

Można je usunąć po usunięciu za pomocą skryptu YUM albo ręcznie.

Odniesienie

slm
źródło
To może być interesująca wtyczka
dnf
@mattdm - ten problem pojawiał się od czasu do czasu, byłoby miło, gdybyśmy mogli to zrobić w świecie „RPM”.
slm
1

Nie ma odpowiednika dla „czyszczenia”, wystarczy użyć yum remove package.

Możesz także użyć yum reinstall package, gdy chcesz ponownie zainstalować jakiś pakiet ...


źródło
1
W rzeczywistości, jak wyjaśniono w odpowiedzi Justina Ethiera , yum removejest równoważne z apt-get purge.
Gilles 'SO - przestań być zły'
6
@Gilles Justin Ethier twierdzi, że yum removenie gwarantuje się zachowania plików konfiguracyjnych”. To nie to samo, co stwierdzenie, że nie zachowuje się plików konfiguracyjnych (co oznaczałoby, że jest to równoważne apt-get purge). Czy czynisz to (znacznie) silniejszym roszczeniem?
Eliah Kagan
@EliahKagan W ten sposób rozumiem mniam howto, które przytacza Justin. Nie jestem pewien, czy to prawda, wydaje się , że CentOS mówi coś wręcz przeciwnego.
Gilles „SO- przestań być zły”
1
Myślę, że to niezdefiniowane zachowanie. Yum może, ale nie musi, zachować pliki konfiguracyjne.
m0j0,
-2

Jeśli chcesz wyczyścić pliki konfiguracyjne z programu, który niedawno usunąłeś za pomocą systemu RPM, wszystko co musisz zrobić, to wpisać: yum clean all

Jared
źródło
2
To jest niepoprawne. „Mniam czyść wszystko” jedynie czyści buforowane metadane, listy kopii lustrzanych itp., Używane przez yum. Nie robi nic z plikami konfiguracyjnymi.
m0j0,