Încerc să împachetez o aplicație Java care necesită Java 17 sau mai sus.
Din cate am inteles eu https://www.debian.org/doc/packaging-manuals/java-policy/ch02.html, nu ar trebui să depind de pachetul concret openjdk-17-jre-headless.
În schimb, ar trebui să folosesc pachetul virtual corespunzător JRE-ului minim de care am nevoie.
În cazul meu: java17-runtime-headless
Singura problemă pe care o am este că atunci când încerc să-mi instalez aplicația cu apt fără un JRE instalat anterior, primesc următoarele:
Următoarele pachete suplimentare vor fi instalate:
ca-certificates-java openjdk-18-jre-headless
Este ceva ce aș dori să evit, deoarece openjdk-18-jre-headless este încă o versiune Early Access. În prezent 18~15ea-4
Nu am gasit pana acum in https://www.debian.org/doc/debian-policy/ch-relationships.html cum aș putea exprima o excludere a dependenței de pachete cu acces timpuriu.
Soluția mea actuală este să exprim dependența în pachetul meu după cum urmează:
Depinde: openjdk-17-jre-headless | java17-runtime-headless
Dar acest lucru nu este perfect, deoarece niciun pachet care oferă java17-runtime-headless nu este deja instalat, ar continua să instaleze JRE 17 chiar și după ce JRE 18 nu mai este în Early Access.
Pentru a rezuma întrebarea:
Cum să exprimăm o dependență față de cel mai recent JRE cu acces non timpuriu disponibil în depozite?
Care ar fi recomandarea in acest caz?
Salutari,