Как сделать существующий rpm устаревшим новым rpm без изменения существующего спецификационного файла rpm - PullRequest
0 голосов
/ 11 октября 2018

Моя команда собирается добавить новый RPM, Y, на землю пользователя.Был RPM, X, который должен быть взаимоисключающим с Y. Другими словами, X и Y не должны сосуществовать.

Таким образом, в файле спецификации Y есть строка с надписью «Устаревший: X».

Дело в том, что мы не можем изменить файл спецификации X. Когда он был написан,такого пакета с именем Y не было. Таким образом, он не является ни "Obsoletes", ни "Conflicts" Y.

Мы можем добавить дополнительные поддельные / виртуальные / мета-пакеты на пользовательскую землю.Есть ли в любом случае, что существующий пакет X также эффективно устаревает новый пакет Y?

yum install X

должен удалить Y, если он установлен.

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

См. Руководство Fedora для устаревших пакетов: https://fedoraproject.org/wiki/Packaging:Guidelines#Renaming.2FReplacing_Existing_Packages Содержит подробное описание.

Но, согласно вашему описанию, вы не хотите использовать «устаревшие».Это используется, когда вы заменяете один пакет другим.Например, когда проект меняет имя и, следовательно, пакет меняет имя, и вы хотите заменить old-name-2.0 на new-name-3.0 или даже new-name-1.0.

Вы хотите использовать Conflicts, и этого достаточно, чтобы поместить этот тег в один из этих пакетов.Если Y спецификация будет иметь:

Conflicts: X

, вам не нужно изменять X, и вы не сможете установить X и Y одновременно.

0 голосов
/ 11 октября 2018

Я не знаю, как сделать это возможным, но вы можете добавить

Conflicts: X

в файл спецификаций для Y. Таким образом, они не могут быть установлены вместе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...