Параллельные версии RPM

#rpm #yum #rpm-spec

#rpm #вкуснятина #rpm-спецификация

Вопрос:

Каков «правильный» способ, если таковой имеется, спроектировать RPM таким образом, чтобы несколько версий можно было устанавливать через YUM / RPM бок о бок, не мешая друг другу? Что касается библиотек, правильный ответ, похоже, связан с sonames, хотя я не могу найти никакой хорошей информации о том, как sonames, символические ссылки и RPM взаимодействуют друг с другом. Я понятия не имею, как следует называть / размещать исполняемые файлы и обычные файлы, чтобы они располагались рядом. Кажется, что правильным поведением в отношении исполняемых файлов было бы указывать более новую версию в PATH, но более старая версия должна быть в PATH, если более новая RPM удалена.

Ответ №1:

По сути, вам нужно убедиться, что версии не конфликтуют:

  • Разделы Requirements / Conflicts не должны иметь конфликтующих требований
  • Каждое имя файла должно существовать только в одной версии — если они не идентичны
  • Скриплеты (% post ect), если они у вас есть, должны сотрудничать

Обратите внимание, что у вас возникнут проблемы с установкой нескольких версий с помощью yum, поскольку yum рассчитан на установку одной версии одновременно — за исключением ядра. Если вы установите / обновите пакет с помощью yum, все старые версии будут удалены. Следовательно, вам нужно будет использовать rpm -i для каждой версии.

Что касается наличия более свежих двоичных файлов в path, это невозможно сделать должным образом. Вам либо нужно сделать что-то вроде python, где пользователь должен указать python или python3 в командной строке, либо вам придется потанцевать с созданием символических ссылок по пути к нужному двоичному файлу. Это должно было бы быть сделано в скриптлетах, и управлять этим довольно сложно. Это также означает, что символическая ссылка не будет принадлежать ни одному пакету.

Комментарии:

1. К сожалению, ответ, похоже, заключается в том, что это невозможно сделать каким-либо полезным способом. 🙁

2. Я думаю, что если вы попробуете установить rpm на альтернативный root — может помочь вам.