9

我们有一个打包成 RPM 的 Web 应用程序。RPM 的版本字段有问题。

假设我们已经安装了 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

根据此链接,版本的每个部分都作为整数进行比较,但实践表明并非如此。

所以我的问题是:RPM 的版本比较算法是什么,为什么前导零会干扰?

4

1 回答 1

18

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 对你说了什么?

于 2010-06-23T20:43:13.147 回答