Я пытаюсь упаковать приложение Java, для которого требуется Java 17 или выше.
Насколько я понимаю https://www.debian.org/doc/packaging-manuals/java-policy/ch02.html, я не должен зависеть от конкретного пакета openjdk-17-jre-headless.
Вместо этого я должен использовать виртуальный пакет, соответствующий минимальному JRE, который мне нужен.
В моем случае: java17-runtime-безголовый
Единственная проблема, с которой я сталкиваюсь, заключается в том, что когда я пытаюсь установить свое приложение с помощью apt без предварительной установки JRE, я получаю следующее:
Будут установлены следующие дополнительные пакеты:
ca-сертификаты-java openjdk-18-jre-без головы
Это то, чего я хотел бы избежать, поскольку openjdk-18-jre-headless все еще является версией раннего доступа. В настоящее время 18~15ea-4
я пока не нашел в https://www.debian.org/doc/debian-policy/ch-relationships.html как я могу выразить исключение зависимостей для пакетов раннего доступа.
Мое текущее решение состоит в том, чтобы выразить зависимость в моем пакете следующим образом:
Зависит: openjdk-17-jre-безголовый | java17-runtime-безголовый
Но это не идеально, так как если пакет, предоставляющий java17-runtime-headless, уже не установлен, он продолжит установку JRE 17 даже после того, как JRE 18 больше не находится в раннем доступе.
Подводя итог вопросу:
Как выразить зависимость от последней версии JRE без раннего доступа, доступной в репозиториях?
Что можно порекомендовать в этом случае?
С уважением,