
Есть ли какие-то рекомендации или у кого-то есть предложения о том, как мне упаковать что-то, что мне нужно, чтобы иметь возможность установить несколько версий одновременно?
решение1
Я не уверен, соответствует ли это тому, чего вы пытаетесь добиться, но в проекте, над которым я работал, мы сначала определили структуру каталогов, что-то вроде:
/usr/local/[project_name]/[version]
где project_name
было "базовое имя" проекта, а version
был конкретный помеченный релиз. Затем мы использовали произвольное число для версии RPM (монотонно увеличивающееся), так что релизы в пределах одного тега или ветви могли быть обновлены RPM без конфликта с другими тегами/ветвями. Это означает, что вам нужно закодировать номер версии где-то в заголовке имени RPM, а не версию, например
Name: foobar-1.0
Version: 1234
Release: 1
# ...etc...
В этом случае RPM может быть установлен по указанному пути /usr/local/foobar/1.0
, а последующие версии будут называться «foobar-2.0» и устанавливаться аналогичным образом.
Название "foobar-1.0" подразумевает, что вам нужна какая-то другая система,нетсистема RPM, для отслеживания номеров версий - мы использовали скрипт оболочки, который просто генерировал specfile по требованию для помеченного релиза. Это может быть немного громоздко, но это дает вам гибкость, позволяя устанавливать несколько версий пакета обычным способом и использовать более одной одновременно.
Это всего лишь предложение, и YMMV, очевидно.
решение2
Просто дайте пакетам разные имена и убедитесь, что они устанавливают файлы в разные места.
Или объедините все версии в один пакет.