Tôi đang cố gắng đóng gói một ứng dụng Java yêu cầu Java 17 trở lên.
Từ những gì tôi hiểu về https://www.debian.org/doc/packaging-manuals/java-policy/ch02.html, Tôi không nên phụ thuộc vào gói openjdk-17-jre-headless cụ thể.
Thay vào đó, tôi nên sử dụng gói ảo tương ứng với JRE tối thiểu mà tôi cần.
Trong trường hợp của tôi: java17-runtime-headless
Vấn đề duy nhất tôi gặp phải là khi tôi cố gắng cài đặt ứng dụng của mình với apt mà không cài đặt JRE trước đó, tôi nhận được thông báo sau:
Các gói bổ sung sau sẽ được cài đặt:
ca-chứng chỉ-java openjdk-18-jre-headless
Đây là điều tôi muốn tránh vì openjdk-18-jre-headless vẫn là phiên bản Truy cập sớm. Hiện tại 18~15ea-4
Tôi đã không tìm thấy cho đến nay trong https://www.debian.org/doc/debian-policy/ch-relationships.html cách tôi có thể thể hiện loại trừ phụ thuộc đối với các gói truy cập sớm.
Giải pháp hiện tại của tôi là thể hiện sự phụ thuộc trong gói của mình như sau:
Phụ thuộc: openjdk-17-jre-headless | java17-runtime-headless
Nhưng điều này không hoàn hảo vì nếu không có gói nào cung cấp java17-runtime-headless đã được cài đặt, nó sẽ tiếp tục cài đặt JRE 17 ngay cả sau khi JRE 18 không còn trong Quyền truy cập sớm nữa.
Để tóm tắt câu hỏi:
Làm cách nào để thể hiện sự phụ thuộc vào JRE không truy cập sớm mới nhất có sẵn trong kho?
Điều gì sẽ là khuyến nghị trong trường hợp này?
Trân trọng,