Аналог apt-get purge для yum
В дебиановском менеджере пакетов apt-get
есть два варианта удаления пакета: apt-get remove package
— удаляет бинарники, но сохраняет файлы конфигурации, а вот apt-get purge package
— удаляет принудительно и файлы конфигурации тоже. Последнее бывает удобно, когда после установки пакета вы такого навертели в конфигах, что проще начать всё заново с дефолтных.
В yum
есть тоже две команды: yum erase package
и yum remove package
. Но они — лишь синонимы, не смотря на то, что некоторые ребята считают erase
аналогом дебиановского purge
. Оба этих синонима ведут себя при удалении пакета следующим образом: они удаляют все бинарники и все дефолтные конфиги, но сохраняют с расширением .rpmsave
те конфиги, которые чем-то отличались от дефолтных.
Например, если вы установите httpd
, потом внесёте какие-то правки в конфиг /etc/httpd/conf/httpd.conf
, а потом удалите httpd
с помощью любой из команд, то при удалении yum
вас предупредит:
Transaction Test Succeeded Running Transaction Erasing : httpd-2.2.15-39.el6.centos.x86_64 1/1 warning: /etc/httpd/conf/httpd.conf saved as /etc/httpd/conf/httpd.conf.rpmsave Verifying : httpd-2.2.15-39.el6.centos.x86_64 1/1 Removed: httpd.x86_64 0:2.2.15-39.el6.centos Complete!
И, как видите, даже сохранит ваш кастомный конфиг под альтернативным именем.
Даже если вы почистите локальный кеш командой yum clean all
перед удалением, то заботливый yum перекачает пакет и сверит файлы, узнав, какие там у вас конфиги остались в исходном состоянии, а какие — поменялись, чтобы измененные бережно сохранить.
Но всё же будьте осторожны. Например, если у вас уже есть файл /etc/httpd/conf/httpd.conf.rpmsave
, то yum
его перезапишет. Короче, обязательно делайте резервные копии значимых для вас конфигов.
ОК, а как быть, когда хочется эффекта purge
, т.е. полного удаления пакета, включая изменённые конфиги? Предлагаю удалять пакет с помощью такого однострочника:
yum -y remove httpd | grep 'warning:' | grep 'saved as' | cut -d' ' -f5 | xargs rm -rf
Кратко поясню, как работает конвейер: вывод yum
мы парсим в поисках предупреждений (grep
), извлекаем из строчек имена сохраняемых файлов (cut
), удаляем их принудительно (rm
). Если конфиги лежали в специально созданных пакетом директориях (как у того же Apache
), то пустые директории вам в наследство всё же останутся. Удалите их руками.