yum 和 rpm 对同一软件包有不同的要求

yum 和 rpm 对同一软件包有不同的要求

我有一个 yum 仓库:

[sensu-checks-prod]
name=sensu-checks-prod
baseurl=http://our.internal.repo/pulp/repos/Sensu_checks_el6-prod/
enabled=1
gpgcheck=0

它由 gem 和使用 fpm 创建的 RPM 组成

我已经编辑了这个包来更改 sensu-rubygem(rest-client)的版本要求,该要求已修复为=1.8.0>=1.8.0

如果我从 repo 下载包

# wget http://our.internal.repo/pulp/repos/Sensu_checks_el6-prod/sensu-rubygem-sensu-plugins-jenkins-1.2.0-1.x86_64.rpm

并使用 rpm 检查

# rpm -qpR sensu-rubygem-sensu-plugins-jenkins-1.2.0-1.x86_64.rpm
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
ruby  
rubygems  
sensu-rubygem(chronic_duration) = 0.10.6
sensu-rubygem(jenkins_api_client) = 1.4.2
sensu-rubygem(rest-client) >= 1.8.0
sensu-rubygem(sensu-plugin) >= 1.2
sensu-rubygem(sensu-plugin) < 2.0

版本要求正常:sensu-rubygem(rest-client) >= 1.8.0

如果我使用 yum 检查:

# yum deplist sensu-rubygem-sensu-plugins-jenkins
Modules complémentaires chargés : fastestmirror
Recherche de dépendances :
Determining fastest mirrors    
sensu-checks-prod                                                                                                                                                                                                      | 2.1 kB     00:00     
sensu-checks-prod/primary                                                                                                                                                                                              |  17 kB     00:00     
sensu-checks-prod                                                                                                                                                                                                                       64/64  
paquet : sensu-rubygem-sensu-plugins-jenkins.x86_64 1.2.0-1
  dépendance : sensu-rubygem(jenkins_api_client) = 1.4.2
   provider: sensu-rubygem-jenkins_api_client.x86_64 1.4.2-1
  dépendance : sensu-rubygem(rest-client) = 1.8.0
   Dépendance non satisfaite
  dépendance : ruby
   provider: ruby.x86_64 1.8.7.374-4.el6_6
  dépendance : rubygems
   provider: rubygems.noarch 1.3.7-1.el6
   provider: rubygems.noarch 1.3.7-5.el6
  dépendance : sensu-rubygem(sensu-plugin) < 2.0
   provider: sensu-rubygem-sensu-plugin.x86_64 1.4.4-1
   provider: sensu-plugin.x86_64 1.0-1
   provider: sensu-rubygem-sensu-plugin.x86_64 1.4.5-1
  dépendance : sensu-rubygem(chronic_duration) = 0.10.6
   provider: sensu-rubygem-chronic_duration.x86_64 0.10.6-1
  dépendance : sensu-rubygem(sensu-plugin) >= 1.2
   provider: sensu-rubygem-sensu-plugin.x86_64 1.4.4-1
   provider: sensu-plugin.x86_64 1.0-1
   provider: sensu-rubygem-sensu-plugin.x86_64 1.4.5-1

这不行:sensu-rubygem(rest-client) = 1.8.0

当然,yum clean 一切都已完成。

为什么 yum 没有反映>=rpm 显示正确吗?

谢谢

答案1

我猜 yum 正在检测没有“>' 转换成 '>='。如果你yum list--show duplicates旗帜做一个,你可以看到是否有多个。

如果确实如此,使用 repo 优先级可能是解决问题的方法。您还可以尝试--enablerepo、或使用和--disablerepo在 repo 配置中为每个 repo 设置过滤器。excludeincludepkgs

Priorities 是旧发行版中的一个插件,因此您可能必须安装它。

相关内容