Redhat
yum 和 rpm 對同一個包的不同要求
我有一個百勝回購:
[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 正確顯示的**>= ?**
謝謝
我猜 yum 正在檢測未將 ’ > ’ 變成 ’ >= ’ 的未修改版本的 RPM。如果你
yum list
用--show duplicates
旗幟做 a ,你可以看看那裡是否有不止一個。如果這是正在發生的事情,那麼使用 repo 優先級可能是您想要解決的問題。您還可以嘗試
--enablerepo
,或使用和--disablerepo
在 repo 配置中為每個 repo 設置過濾器。exclude``includepkgs
Priorities 是舊發行版中的外掛,因此您可能必須安裝它。