У меня есть приложение 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, когда все поставщики имеют разные имена?
Изменить: третий вариант - создать собственный виртуальный пакет Java для Fedora, который зависит от Sun JDK RPM.