У меня есть приложение 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, который зависит от RPM-пакета Sun JDK.