Что является эквивалентом «apt-get purge» в Fedora?

45

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

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

Первый сохраняет общесистемные конфигурационные файлы (то есть те, которые находятся в « / etc »), а второй нет.

Что такое эквивалент Fedora второй формы purge? Или, может быть, мне лучше спросить, yum remove pkgnameдействительно ли сохраняются файлы конфигурации.

tshepang
источник

Ответы:

27

yum remove Не гарантируется сохранение файлов конфигурации.

Как сказано в ням HOWTO :

В любом случае синтаксис команды для удаления пакета:

# yum remove package1 [package2 package3...]

Как отмечено выше, он удаляет package1 и все пакеты в дереве зависимостей, которые зависят от package1, возможно, необратимо, если речь идет о данных конфигурации .

Обновить

Как указывает Джеймс, вы можете использовать rpm -eкоманду, чтобы стереть пакет, но сохранить резервные копии любых файлов конфигурации, которые были изменены.

Для получения дополнительной информации см. Использование RPM для удаления пакетов . Особенно:

Он проверяет, были ли изменены какие-либо файлы конфигурации пакета. Если это так, он сохраняет их копии.

Джастин этир
источник
4
Это не совсем так, «rpm -e» удалит файлы конфигурации, если они не изменились. Если они были изменены, они перемещаются в <filename> .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 по сценарию или вручную.

Ссылка

SLM
источник
Это может быть интересный плагин dnf ....
mattdm
@mattdm - эта проблема время от времени поднималась, было бы неплохо, если бы мы могли сделать это в мире RPM.
SLM
1

Для «чистки» нет эквивалента, просто используйте yum remove package.

Также вы можете использовать yum reinstall package, когда вы хотите переустановить какой-то пакет ...


источник
1
На самом деле, как объясняется в ответе Джастина Этьера , yum removeэквивалентно apt-get purge.
Жиль "ТАК - перестань быть злым"
6
@ Жиль Джастин Этьер говорит, yum removeчто « не гарантируется сохранение файлов конфигурации». Это не то же самое, что сказать, что гарантированно не сохраняются файлы конфигурации (что означает, что это эквивалентно apt-get purge). Вы делаете это (намного) более сильное требование?
Элия ​​Каган
@EliahKagan Вот так я понимаю ню-хау, на который ссылается Джастин. Я не уверен, что это правильно, кажется, CentOS говорит обратное.
Жиль "ТАК - перестань быть злым"
1
Я думаю, что это неопределенное поведение. Yum может сохранять или не сохранять файлы конфигурации.
m0j0
-2

Если вы хотите очистить файлы конфигурации из программы, которую вы недавно удалили через систему RPM, все, что вам нужно сделать, это ввести: yum clean all

Джаред
источник
2
Это неверно «Yum clean all» просто очищает кэшированные метаданные, зеркальные списки и т. Д., Используемые yum. Это ничего не делает с файлами конфигурации.
m0j0