Аналог 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), то пустые директории вам в наследство всё же останутся. Удалите их руками.

Лента записей (RSS)
Лента комментариев (RSS)