У меня есть как минимум 5 серверов разработки (dev, QA, staging), на которых php и другие пакеты скомпилированы из исходников. Я хотел бы удалить их все и обновить эти серверы пакетами yum. Если я смогу сделать это с помощью марионетки или повара, это будет здорово. Так:
Как начать поиск пакетов, которые компилируются самостоятельно
На самом деле нет хорошего способа гарантировать, что вы получите их все
но на самом деле нет хорошего способа гарантировать, что вы получите их все
и удали их
Это нетривиально, если в пакете не предусмотрена возможность удаления самого себя. Вы можете попробовать перекомпилировать пакеты, а затем переустановить их с помощью chroot или, если DESTDIR = drective
mkdir /tmp/package
make && make install DESTDIR=/tmp/package
Затем просмотрите содержимое / tmp / package или дерева chroot, чтобы получить список файлов, который затем можно использовать для удаления файлов из основного дерева файловой системы. Однако это зависит от того, знаете ли вы, какие параметры вы использовали для настройки сборки.
Позже установить обновленную версию тех же пакетов через yum на сервере?
yum install packagename
Можно ли использовать puppet / chef для имитации изменений на серверах?
Лучшее решение на этом этапе - начать заново. Выберите решение для управления конфигурацией и используйте его для построения согласованных систем
Затем установите базовую ОС
К сожалению, очистить такую ситуацию не очень просто. Во всяком случае, к следующему:
При условии, что у вас все еще есть скомпилированные исходники (я стараюсь сохранить их сам), многие современные пакеты поддерживают удалить цель. Просто make uninstall
и, надеюсь, нужные файлы будут удалены. Если у вас их нет, перекомпилируйте их и установите, а затем удалите. Просто убедитесь, что у вас такая же версия.
Если это не сработает, вы можете попробовать установить пакеты дистрибутива и использовать rpm
для ручного поиска файлов, которые не принадлежат ни одному пакету. Просто убедитесь, что все предыдущие файлы перезаписаны.