我们有一个打包成 RPM 的网络应用程序。
我们对 RPM 的 version 字段有问题。
假设我们已经安装了 rpm:foo-2.1.0.007
007 是我们的内部版本号。
现在,当我们尝试安装更新的 rpm foo-2.1.0.010 时,yum 会说“没有什么可更新的”。
当我重新制作 RPM,但删除了前导零时,问题就解决了:
foo-2.1.0.7
foo-2.1.0.10
根据 this link版本的每个部分都作为一个整数进行比较,但实践表明并非如此。
所以我的问题是:RPM 的版本比较算法是什么,为什么前导零会干扰?
最佳答案
Yum 只是要求 rpm 比较它们。您可以安装 rpmdevtools,然后使用:
% rpmdev-vercmp foo-2.1.0.010 foo-2.1.0.007
0:foo-2.1.0.010 is newer
...这是你所期望的。除非您在 007 包中有一个纪元,否则我不确定您为什么会得到不同的答案。你有什么版本的rpm? vercmp 对您有什么看法?
关于comparison - yum 如何比较版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2996279/