У меня есть yum repo:
[sensu-checks-prod]
name=sensu-checks-prod
baseurl=http://our.internal.repo/pulp/repos/Sensu_checks_el6-prod/
enabled=1
gpgcheck=0
Которая состоит из гемов для RPM, созданных с помощью fpm
Я отредактировал этот пакет, чтобы изменить требования к версии sensu-rubygem (rest-client), которые были исправлены на = 1.8.0 до > = 1.8.0
Если я загружу пакет из репозитория
# 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
с флагом - показать дубликаты
, вы сможете увидеть, есть ли их более одного.
Если это то, что происходит, используйте приоритеты репо вероятно, вы хотите это исправить. Вы также можете попробовать - enablerepo
, - disablerepo
или установить фильтры для каждого репо в конфигурациях репо, используя exclude
и includepkgs
.
Priorities - это подключаемый модуль в старых дистрибутивах, поэтому вам, возможно, придется его установить.