告诉百胜忽略单个依赖项


37

我正在尝试在CentO 6上安装winswitch。它需要“ nxagent”。但以centos为单位,程序包名称为“ nx”。有没有办法告诉yum跳过对'nxagent'依赖项的检查(我已经安装了'nx')?指定--skip-broken跳过整个过程

Answers:


14

通常yum没有选项可以从依赖项中忽略单个程序包。Option --skip-broken忽略所有未解决的依赖关系。

您可以尝试,yum --exclude=packagename但是它会从所有存储库的更新中而不是从依赖项中按名称或glob排除特定的程序包。


1
yum --exclude在依赖

2
@DrStrangepork是的,我知道我在回答中写道
B14D3

5
既不--exclude也不--skip-broken利于旁路的方式一个或多个依赖rpm --nodeps一样。
Acumenus'Aug

3
转到第二个答案。
brthornbury

49

rpm命令具有--nodeps您可以使用的选项。一个挑战是,rpm它本身并不知道yum存储库。以下命令将安装或更新软件包,而忽略依赖关系,但会自动从repoquery软件包中的存储库中查找下载URL yum-utils

rpm -Uvh --nodeps $(repoquery --location winswitch)

此后,常规yum update将可能成功而不会导致依赖项错误。


$(repoquery --location winswitch)对我不起作用。但是,可以通过“ yumdownloader --destdir =。package-name”下载.rpm软件包。“ rpm -U”表示升级。如果未安装该软件包,则可以使用“ rpm -i”。yumdownloader来自yum-utils(在我的情况下为dnf-utils)。
Yaroslav Nikitenko

2

听起来您正在尝试安装不是为OS设计的软件包,即,如果它是为CentOS设计的,则需要nx正确安装。

该问题的另一种解决方法是创建并安装一个小型Shim RPM软件包,该软件包不包含任何文件,但在spec文件中包含以下几行(以及其他各行):

requires: nx
provides: nxagent

这样就可以满足依赖关系,但是它可能期望文件放置在nxagent预期安装的nx软件包和CentOS提供的软件包之间不同的位置。


0

您还可以使用rpmrebuild来更改rpm元数据以指向新的软件包名称。这将是“您的”程序包,但就rpm依赖关系而言更干净。我认为使用--nodeps没有任何缺点。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.