百胜安装包含范围要求的错误版本的包

时间:2018-03-22 14:29:00

标签: centos rpm yum

我有一个半复杂的设置,其中有多个存储库,其中包含相同的包(有一个单独的团队管理实际的存储库)。

在安装过程中,我们尝试安装满足某些范围的版本:yum install "my-package < 3.0.0"

在上周工作正常,安装了最大的版本&lt; 3.0.0(2.5)。但是,它突然开始安装2.1.0版本。有没有办法检查为什么它开始了?

当我yum --showduplicates list my-package时,它会得到以下内容,因此它似乎应该可用:

Installed Packages
my-package.x86_64             2.1.0-1      @codex-released    
Available Packages
my-package.x86_64             0.12.0-1     codex-released     
my-package.x86_64             1.0.0-1      codex-released     
my-package.x86_64             2.1.0-1      codex-released     
my-package.x86_64             2.2.0-1      codex-released     
my-package.x86_64             2.3.0-1      codex-released     
my-package.x86_64             2.4.0-1      codex-testing      
my-package.x86_64             2.4.1-1      codex-released     
my-package.x86_64             2.4.2-1      codex-testing      
my-package.x86_64             2.5.0-1      codex-testing      
my-package.x86_64             2.5.1-1      artifactory-testing
my-package.x86_64             3.0.0-1      artifactory-testing
my-package.x86_64             3.0.0-1      codex-testing   

有没有办法找出为什么它没有安装更高版本?

1 个答案:

答案 0 :(得分:3)

我想这是因为Epoch。有些工具根本不显示它。比较:

$ rpm -q nmap
nmap-7.60-7.fc27.x86_64

只有在您要求提供更多详细信息时才能看到它:

$ rpm -q --qf "%{epoch}:%{version} %{name}\n"  nmap
2:7.60 nmap
$ rpm -qi nmap |grep Epoch
Epoch       : 2

但是epoch覆盖了版本。参见:

$ rpmdev-vercmp 3.0.0 1:2.1.0
3.0.0 < 1:2.1.0