Я хочу установить один пакет с помощью yum и не использовать rpm, но с тем же поведением, что и --replacefiles
в rpm. У меня есть один пакет, у которого есть конфликты файлов с другими, и мне нужно принудительно установить с помощью yum. Этот пакет мой, поэтому я могу изменить spec-файл.
решение1
Вы можете использоватьтриггерные скриптлетыдля этого.
Для иллюстрации предположим, что файл /etc/contested
принадлежит пакету RPM с именем generally
, и у вас есть другой пакет ( specifically
), который хочет принудительно перезаписать тот же файл.
В specifically.spec
вы устанавливаете новую версию файла в %{_datadir}/%{name}/etc.contested
и используете этот скрипт-триггер для его установки в /etc
:
%triggerin -- generally install -m 0644 %{_datadir}/%{name}/etc.contested %{_sysconfdir}/contested
Скриптлет будет запускаться каждый раз при generally
установке или обновлении, а также каждый раз specifically
при установке или обновлении.
RPM все равно заметит, что файл не такой, как ожидалось, но это не помешает вам выполнить установку или удаление.
решение2
Если вы можете изменить файл спецификации, возможно, вы можете удалить файлы, которые конфликтуют в разделе файлов? Вы указываете папку в этом разделе? или файл за файлом?