Я хочу установить пакет с именем pA
.
pA-1.0.0-0
зависит от пакета pB-1.0.0-0
.pB-1.0.0-0
и pB-1.1.0-0
.pA-1.0.0-0
не совместим с pB-1.1.0-0
, и эта информация не упоминается в RPM pA
так как pB-1.1.0-0
не существовало тогда, когда pA
был упакован.Это проблема при попытке установить pA
с участием yum
:
$ yum localinstall pA-1.0.0-0.el7.x86_64.rpm
...
Resolving Dependencies
-> Processing Dependency: pB >= 1.0.0 for package: pA-1.0.0-0.el7.x86_64
--> Package pB.x86_64 0:1.1.0-0.el7 will be installed # <-- version 1.1! ho no!
Есть ли опция командной строки в yum
попросить его установить конкретную версию, требуемую для его зависимостей?
Конкретно здесь, чтобы установить pA-1.0.0-0.el7.x86_64
скорее, чем pA-1.1.0-0.el7.x86_64
.
Примечание: я не могу иметь дело с pA
зависимости вручную: в моем реальном сценарии существует бесчисленное количество зависимостей, которые я бы не устанавливал отдельно с rpm
.
Невозможно напрямую сделать то, что вы просите, но вы можете установить определенную версию зависимости. перед установка вашего основного пакета:
yum install pB-1.0.0-0
yum install pA
Предотвращать pB
от обновления при обновлении остальной системы, вы можете использовать versionlock
плагин для yum
:
yum install yum-plugin-versionlock
yum versionlock pB-*
Это заблокирует версию pB
на том, что было установлено при установке замка. Видеть Как ограничить yum установкой или обновлением пакета до фиксированной конкретной версии пакета?
Изменить: если вы не хотите / не можете иметь дело с ручной установкой зависимостей в их требуемых версиях, вы можете добавить список зависимостей и их версий в /etc/yum/pluginconf.d/versionlock.list
чтобы обеспечить установку определенных версий при установке pA
.