告诉yum忽略一个依赖

我正尝试在CentOs 6上安装winswitch。它需要'nxagent'。 但在centos中,包名是'nx'。 有没有办法告诉百胜跳过检查'nxagent'的依赖(我已经安装了'nx')? 指定–skip-broken跳过了整个事情

一般来说yum没有选项可以忽略依赖关系中的一个包。 选项--skip-broken忽略所有未解决的依赖关系。

你可以尝试yum --exclude=packagename但是它将所有存储库中的更新从名称或者glob中排除,而不是从依赖项中排除。

rpm命令具有可以使用的--nodeps选项。 下面的命令将会安装或者更新软件包,忽略依赖关系,但是自动从你的软件仓库中查找包含yum-utils软件包的repoquery的下载URL。

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

之后,有规律的yum update可能会成功,不存在依赖性错误。

这听起来像是你正在试图安装不是为操作系统devise的软件包,也就是说,如果它是为CentOSdevise的,那么它需要正确的nx

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

 requires: nx provides: nxagent 

这种方式应该满足依赖性,但是它可能期望文件位于它预期安装的nxagent软件包和CentOS提供的nx软件包之间的不同位置。

您还可以使用rpmrebuild将rpm元数据更改为指向新的软件包名称。 这将成为“你的”软件包,但是就转速依赖性而言,它是更清洁的。 我认为使用–nodeps没有任何缺点。