#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 — может помочь вам.