Указание альтернатив в зависимостях RPM

У меня есть приложение Java, которое я упаковываю как RPM. В идеале я хотел бы указать Java как зависимость. Мне нужно установить в среде Fedora и RHEL. Проблема в том, что RHEL Java называется «java», в то время как Fedora не предоставляет дистрибутив Oracle / Sun, оставляя один для загрузки вручную с веб-сайта Oracle. Дистрибутив Java Oracle называется jre или jdk, в зависимости от того, какой пакет вы выбрали.

Обычно в файле SPEC RPM я бы написал:

Зависит от: java> = 1.6

Но поскольку RHEL предоставляет 'java', а Fedora через Sun / Oracle предоставляет 'jre' или 'jdk' (и я не могу использовать OpenJDK), я немного привязан. Документация до сих пор не показала способ выполнения 'java> = 1.6 || jre> = 1,6 || jdk> = 1.6 'и т. д. Поскольку пакеты Java не находятся под моим контролем, я не могу просто изменить один или другой, указав «Provides: Java».

В настоящее время я вижу только два варианта:

  • Не использовать Java как зависимость
  • Создать один пакет RPM для Fedora, один для RHEL

Мне не нравится ни один из вариантов. Существуют ли какие-либо другие способы достижения зависимости Java, когда все поставщики имеют разные имена?

Изменить: третий вариант - создать собственный виртуальный пакет Java для Fedora, который зависит от Sun JDK RPM.

14
задан Kara 3 February 2014 в 18:26
поделиться