2010-06-08 122 views
5

我们有一个web应用程序,我们打包成RPM。 我们在RPM的版本字段有问题。yum比较版本如何?

比方说,我们已经安装了我们的RPM:FOO-2.1.0.007

007是我们的版本号。

现在,当我们尝试安装一个新的rpm,foo-2.1.0.010,yum说“没有什么需要更新”。

当我重拍的RPM,但是删除了前导零,问题解决了:

富-2.1.0.7

富-2.1.0.10

根据this link每段的版本是作为一个整数进行比较的,但实践显示其他情况。

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

回答

14

百胜只是要求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对你说什么?

+0

我不知道如何,但现在一切都按预期工作,意味着010安装在007之上。奇怪的 – 2010-06-24 12:14:45

+1

谢谢,让我知道RPM确实认为0.901比0.92更新,但不是0.920。显然比较点状整数而不是十进制数。 – theory 2012-08-29 18:00:07