告诉 yum 忽略单个依赖项

Itt*_*ayD 42 centos yum rpm

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

Onn*_*ous 64

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

rpm -Uvh --nodeps $(repoquery --location winswitch)
Run Code Online (Sandbox Code Playgroud)

在那之后,一个普通的yum update很可能会成功而不会出现依赖错误。


B14*_*4D3 17

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

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

  • `--exclude` 和 `--skip-broken` 都不会像 `rpm --nodeps` 那样帮助绕过一个或多个依赖项。 (8认同)
  • 转到第二个答案。 (5认同)
  • @DrStrangepork 是的,我知道我在回答中写了这个 (3认同)
  • `yum --exclude` 对依赖项不起作用 (2认同)

bod*_*git 5

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

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

requires: nx
provides: nxagent
Run Code Online (Sandbox Code Playgroud)

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