RPM-упаковка нескольких версий для одновременной установки

RPM-упаковка нескольких версий для одновременной установки

Есть ли какие-то рекомендации или у кого-то есть предложения о том, как мне упаковать что-то, что мне нужно, чтобы иметь возможность установить несколько версий одновременно?

решение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

Просто дайте пакетам разные имена и убедитесь, что они устанавливают файлы в разные места.

Или объедините все версии в один пакет.

Связанный контент