Назад | Перейти на главную страницу

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

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

Я не уверен, соответствует ли это тому, что вы пытаетесь достичь, но в проекте, над которым я работал, мы сделали это, сначала продиктовав структуру каталогов, например:

/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 очевидно.

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

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