![RPM:如何强制所需版本大于.spec 文件中指定的版本?](https://linux22.com/image/630232/RPM%EF%BC%9A%E5%A6%82%E4%BD%95%E5%BC%BA%E5%88%B6%E6%89%80%E9%9C%80%E7%89%88%E6%9C%AC%E5%A4%A7%E4%BA%8E.spec%20%E6%96%87%E4%BB%B6%E4%B8%AD%E6%8C%87%E5%AE%9A%E7%9A%84%E7%89%88%E6%9C%AC%EF%BC%9F.png)
我的包 .spec 文件中有以下条目:
Requires: jdk >= 1.7
即使安装了 jdk-1.6.0_45-fcs.x86_64,我的软件包安装也没有问题(甚至没有警告)。如何强制停止安装我的软件包,直到安装所需的 Java 版本?
谢谢!
答案1
我自己尝试解决这个问题时偶然发现了这篇文章。最后我找到了解决方案。
jdk >= 2000:1.7.0_15
这是通过尝试命令“yum list installed | grep jdk”并发现我当前的版本是 2000:1.6.0_45 而产生的。这导致我使用 2000:1.7.0_15,它删除了 1.6 并安装了 1.7。
我搜索了有关软件包版本控制的一些详细信息,并找到了此链接, http://www.rpm.org/max-rpm-snapshot/s1-rpm-depend-manual-dependencies.html
它看起来像是 Epoch。“当 RPM 无法解读软件包的版本号时,就该提取 Epoch 标签了。此标签用于帮助 RPM 确定版本号顺序。”
“为了指示 RPM 在进行依赖性检查时查看纪元号而不是版本号,必须在 Requires 标记行中的版本前使用“:”。