Що таке еквівалент Fedora як "вдала чистка"?


45

У Debian є щонайменше два способи видалення пакета:

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

Перший зберігає конфігураційні файли для всієї системи (тобто ті, які знайдені у " / etc "), а другий - ні.

Який еквівалент Fedora другої форми purge? Або, можливо, я повинен скоріше запитати, чи yum remove pkgnameдійсно зберігає конфігураційні файли.

Відповіді:


27

yum remove не гарантується збереження файлів конфігурації.

Як зазначено у YUM HOWTO :

У будь-якому випадку синтаксис команд для видалення пакета:

# yum remove package1 [package2 package3...]

Як було зазначено вище, він видаляє package1 та всі пакети з дерева залежностей, які залежать від пакета1, можливо, необоротно, що стосується даних конфігурації .

Оновлення

Як зазначає Джеймс, ви можете використовувати rpm -eкоманду для видалення пакета, але зберігати резервні копії будь-яких змінних конфігураційних файлів.

Для отримання додаткової інформації див. Використання RPM для видалення пакетів . Зокрема:

Він перевіряє, чи змінено будь-який з конфігураційних файлів пакету. Якщо так, то вони зберігають їх копії.


4
Це не зовсім так, "rpm -e" видалить конфігураційні файли, якщо вони не були змінені. Якщо вони були змінені, вони переміщуються до <imename> .rpmsave та не видаляються.
Джеймс Антілл

9

Я знайшов цю відповідь на повторне запитання на ServerFault під назвою: yum еквівалент "apt-get purge", який забезпечує єдиний я бачив метод, який може робити те, що apt-get purge <pkg>робиться на 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

Єдиний інший метод, який я можу тут уявити, - це проаналізувати вихідні дані yum remove <pkg>та видалити вручну всі файли, які, можливо, були змінені. Наприклад, коли я нещодавно встановив RPM ElasticSearch для 2.3, я змінив кілька файлів, пов’язаних із цим RPM. Коли я видалив його за допомогою YUM, ви отримаєте повідомлення у вихідному вигляді таким чином:

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

Їх можна видалити після видалення після використання YUM за сценарієм або вручну.

Довідково


Це може бути цікавий плагін dnf ....
mattdm

@mattdm - це питання час від часу виникало, було б добре, якби ми могли це зробити у світі "RPM".
slm

1

Не існує еквівалента для "чистки", просто використовуйте yum remove package.

Також ви можете використовувати yum reinstall package, коли хочете перевстановити якийсь пакет ...


1
Насправді, як пояснено у відповіді Джастіна Етьє , yum removeрівнозначно apt-get purge.
Жил 'ТАК - перестань бути злим'

6
@Gilles Джастін Етьє каже yum remove, що " не гарантується збереження файлів конфігурації". Це не те саме, що говорити про те, що гарантовано не зберігати конфігураційні файли (це означає, що це еквівалентно apt-get purge). Ви робите це (набагато) сильніше претензія?
Елія Каган

@EliahKagan Саме так я розумію, як цитує Джастін. Я не впевнений, що це правильно, CentOS, здається, говорить протилежне.
Жил "ТАК - перестань бути злим"

1
Я думаю, що це невизначена поведінка. Yum може або не може зберегти файли конфігурації.
m0j0

-2

Якщо ви хочете очистити конфігураційні файли з програми, яку ви нещодавно видалили через систему RPM, все, що вам потрібно зробити, це ввести: yum clean all


2
Це неправильно. "Yum clean all" просто очищує кешовані метадані, дзеркальні списки тощо, використовувані yum. Це не робить нічого для конфігураційних файлів.
m0j0
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.