Короче говоря, я хочу реализовать плавное переключение между старым и новым пакетами с разными именами.Тем не менее, я хочу достичь этого, не трогая файл спецификации старого пакета.Беспроблемный коммутатор включает в себя то, что другие пакеты, зависящие от новых или старых пакетов, не нужно удалять и переустанавливать только из-за коммутатора.
Я собираюсь добавить, скажем, Y, в дистрибутив (ы) Linux на основе Redhat.Однако в дистрибутиве уже давно был пакет X.Это один и тот же набор программного обеспечения, в котором много файлов установлено в одном месте и т. Д. Единственное существенное отличие - это версия.X - относительно старая и стабильная версия.Y - почти такая же версия, как только что выпущенное сообщество open source.Скажем, программное обеспечение - это Foo, а X - это Foo 1.4, а Y - это Foo 2.1.
Поскольку Y является экспериментальной версией, мы бы хотели, чтобы пользователи могли беспрепятственно переключаться между X и Y.Другими словами, поскольку у пользователей есть несколько пакетов, которые зависят от X или Y, мы не хотим, чтобы пользователям приходилось удалять и переустанавливать эти пакеты при переключении с X на Y и с Y на X.
Проблема в том, что я хотел бы избежать как можно большего изменения X. Я могу делать все что угодно с файлом спецификации Y и т. Д.
Добавление «Obsoletes: X» к Y позволило, что при установке Y автоматически удаляется X безкасаясь любого другого программного пакета, который зависит от X или Y. Я действительно хотел бы сделать то же самое для X, но не могу коснуться файла спецификации X.
Добавление «Conflicts: X» к Y вынуждает пользователясначала «удалить» Y перед установкой X. Дело в том, что когда пользователь удаляет Y, все программные пакеты, зависящие от X или Y, исчезают с Y. X еще не установлен, а Y скоро исчезнет.Таким образом, у них не было бы ни X, ни Y. Это то, чего я хочу избежать.
% PS У меня здесь был похожий вопрос: как сделать существующий rpm устаревшим новым rpm без изменениясуществующий файл спецификации rpm
Это было пару дней назад, и у меня было мало знаний.Мне посоветовали использовать «Conflicts: X» в файле спецификации Y.Позже я обнаружил еще одну проблему, заключающуюся в том, что сторонние пакеты должны быть удалены и переустановлены, когда я переключаюсь обратно на X с Y. Это заставило меня опубликовать этот новый вопрос.Ответ здесь действительно решил мою проблему.Ответы на мой старый вопрос мне очень помогли, но не полностью разрешили мою проблему.