comparison - yum 如何比较版本?

标签 comparison versioning yum fedora10

我们有一个打包成 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/

相关文章:

docker - yum install 对 Docker 层大小的影响

java - 字符串数组和列表比较

将两个日期作为 C 中的 char 数组进行比较

python - 为什么使用 '==' 或 'is' 比较字符串有时会产生不同的结果?

iphone - 如何从 IPA 中找到 iPhone 应用程序的版本号?

versioning - 实现版本控制系统的好策略

svn - 版本号名称规范的常用或类别是什么?

python - 为特定的 python 版本安装 pip

linux - yum安装apt错误

ios - 用 isEqual 比较两种颜色时的奇怪结果