У меня есть несколько приложений, которые я хочу развернуть с использованием rpm. Некоторые из файлов в развертывании моего приложения переопределяют файлы из других развернутых пакетов. Простое включение новых файлов в пакет развертывания вызовет конфликты rpm.Как использовать rpm для обновления/замены существующих файлов?
Я ищу подходящий способ использования rpm для обновления/замены уже установленных файлов.
У меня уже есть несколько решений, но ничего не кажется совершенно правильным.
- Ведение пользовательских версий rpms, содержащих исходные файлы.
Это похоже на большой объем работы за относительно небольшую награду, даже если она менее похожа на хак, чем на некоторые другие возможные решения.
- Включите файлы в rpm с другим именем и скопируйте их в разделе сообщений.
Это будет работать, но будет означать засоривание системы несколькими копиями файлов. Также это означает дополнительное обслуживание в спецификации сборки rpm для каждого файла.
- Используйте wget в почтовом отделении, чтобы заменить исходные файлы с известного сервера.
Это похоже на технику копирования, но файлы даже не живут в об/мин. Однако это может быть хорошим центральным конфигурационным центром.
- Разверните файлы в виде новых файлов, а затем используйте символические ссылки для переопределения оригиналов.
Это также похоже на технику копирования, но с меньшим количеством помех. Проблема здесь в том, что некоторые файлы не ведут себя хорошо как символические ссылки.
Это хороший совет, но функция rpmnew/rpmsave действительно относится к обновлению существующего пакета. У меня возникла проблема с добавлением нового пакета, который изменяет файлы, уже установленные другим пакетом. Спасибо! – tremoloqui
Обновление файлов другого пакета звучит не очень безопасно для меня. Зачем вам нужно возиться с файлами из других пакетов? – lothar
. Пример: пакет perl-5.8.8 на CentOS содержит множество более старых версий модулей CPAN, которые вы не сможете обновить с помощью RPM, потому что обновленные файлы модулей будут конфликтовать. Таким образом, вы либо застряли со старыми модулями, либо взломали его. –