我想要安装一个名为 的包pA
。
- 包
pA-1.0.0-0
依赖于包pB-1.0.0-0
。 - 在 yum 存储库中,可以找到
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
。
答案1
没有办法直接执行你的要求,但你可以安装特定版本的依赖项前安装主要软件包:
yum install pB-1.0.0-0
yum install pA
为了防止pB
在更新系统其余部分时被升级,您可以使用以下versionlock
插件yum
:
yum install yum-plugin-versionlock
yum versionlock pB-*
pB
这将锁定在锁定时安装的版本。请参阅如何限制 yum 安装或升级软件包到固定的特定软件包版本?
编辑:如果您不想/无法手动安装所需版本的依赖项,您可以添加 deps 及其版本列表,以/etc/yum/pluginconf.d/versionlock.list
确保在安装时安装特定版本pA
。