Как эмулировать функцию «Replaces:» пакета Debian в RPM?

Как эмулировать функцию «Replaces:» пакета Debian в RPM?

Мне нужно использовать NSCD, Name Service Caching Daemon, чтобы уменьшить нагрузку на наш сервер LDAP в моих системах SLES10. По моему опыту, nscd по умолчанию, поставляемый как часть GNU LibC, — это мусор, и он будет ужасно ломаться каждые несколько часов. В результате использование замены, такой как unscd или gnscd, является обязательным.

В SLES10 нет пакетов для любого из них, поэтому требуется компиляция пакета. Однако есть проблема с AppArmor — в SLE10 каждое приложение имеет свой профиль AppArmor, объединенный в один большой пакет «apparmor-profiles», вместо того, чтобы позволить каждому пакету предоставлять свой собственный профиль — и unscd/gnscd не работают с профилями в apparmor-profiles.

При создании пакета Debian можно указать связь под названием Replaces:, которая говорит: «Я знаю, что включаю тот же файл, что и этот другой пакет, но я могу перезаписать их файл, пока их версия соответствует этой проверке». В результате я мог бы указать что-то вроде «Replaces: apparmor-profiles (<= 2.0.1-20.20.16)» в моем файле спецификаций, и я мог бы чисто заменить любой файл из пакета apparmor-profiles.

Как бы я сделал то же самое с RPM, если бы не перекомпиляция моего собственного пакета apparmor-profiles с удалением файла или принудительное выполнение пакета через команду rpm (что приведет к проблемам в будущем)?

решение1

Я не думаю, что у RPM есть аналогичная функция. У RPM есть функция "Устаревшие", но она предназначена для замены одного пакета другим пакетом с другим именем. Вы можете иметь несколько RPM, владеющих одним объектом, но это в основном используется для каталогов, таких как /etc/bash_completion.d, в зависимости от того, какой дистрибутив вы используете: у всех них немного разные правила упаковки.

Связанный контент