我有一个需要与 openjdk 11 和 oracle java 11 兼容的包。我正在尝试创建一个可以依赖于 openjdk java 11 或 oracle java 11 的元包:
我的 openjdk 元包规范是:
Name: openjdk-11-adapter
Version: 0
Release: 0
Epoch: 0
Summary: NA
License: NA
Provides: java-11-metapackage
Requires: jre-11 >= 11
%description
%prep
%build
%install
%files
oracle java 元包规范是:
Name: oracle-11-adapter
Version: 0
Release: 0
Epoch: 0
Summary: NA
License: NA
Provides: java-11-metapackage
Requires: jre >= 2000:11
%description
%prep
%build
%install
%files
所以现在我的包可以依赖java-11-metapackage
并且依赖于任一版本。当我安装它时,我希望yum
会安装可用的 java。
实际发生的情况是,当我通过 yum 安装我的软件包时,我知道可以jre-11
通过yum 安装java-11-openjdk
,但 yum 总是会尝试安装oracle-11-adapter
并抱怨没有任何东西可以满足jre >= 2000:11
依赖关系。肯定openjdk-11-adapter
是众所周知的,但被忽略了。
我的问题是,为什么 yum 会忽略可满足的openjdk-11-adapter
,而尝试安装不可满足的oracle-11-adapter
?它如何确定安装是否合适?
我注意到,如果我重命名oracle-11-adapter
为aaaoracle-11-adapter
, yum 将按预期运行并安装其依赖关系可以得到满足的 java 适配器,但对于我来说,这感觉太老套了,无法将其投入生产。