我正在构建一个RPM,现在标记openjdk-6作为要求;我想添加对openjdk-7的支持;但我不知道如何修改spec文件以寻找openjdk6或openjdk7作为要求。我读到了虚拟包的概念,我正在尝试使用它。 我正在添加
Requires: libjvm.so
在我的规范中;并检查我的%pre部分中的6或7。但是构建的RPM包无法识别libjvm.so。
error: Failed dependencies:
libjvm.so is needed by myapp.x86_64
我试过rpm -q - 提供java-1.6.0-openjdk并列出
libjvm.so()(64bit)
libjvm.so(SUNWprivate_1.1)(64bit)
我在虚拟包dep上做错了吗?是否有更清晰/明显的方式提及或JDK6 / 7作为依赖?
答案 0 :(得分:1)
如果你已经在前面部分检查了openjdk 6或7,为什么不设置一个变量来根据支票返回的值填充需求?如果openjdk的命名不是很中等,那么你可以使用Requires: openjdk >= 1.6
,但我认为这不会起作用,因为他们决定将版本值放在中间位置。