告诉 yum 忽略单个依赖项

告诉 yum 忽略单个依赖项

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

答案1

通常yum没有忽略依赖项中的单个包的选项。选项--skip-broken会忽略所有未解决的依赖项。

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

答案2

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

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

此后,常规操作yum update很可能会成功,并且不会出现依赖性错误。

答案3

听起来您正在尝试安装尚未为操作系统设计的软件包,即,如果它是为 CentOS 设计的,那么它将被nx正确要求。

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

requires: nx
provides: nxagent

nxagent这样,依赖关系就应该得到满足,但是它可能期望文件位于它期望安装的包和nxCentOS 提供的包之间的不同位置。

答案4

这个单行示例可以做到这一点(tigervnc-server 是正在安装的包)

rpm -ivh --nodeps ` yumdownloader tigervnc-server | perl -ne 'print $2 if(/^(\[.+\]\s*|)(.*?\.rpm)[\s:]/)'`

相关内容