如何只下载适合 64 位架构的包?

How to download only packages suitable for 64 bit architecture?

我使用的是 CentOS 7 64 位。我正在尝试使用 yumdownloader 下载多个包及其依赖项。但是我面临着下载我不需要的软件包的问题。

当我使用 yum install <package> 安装软件包时,只有一个软件包被安装:x86_x64(如果可用)或 i686(如果 64 位不可用)或noarch。我正在尝试模仿相同的行为以仅下载具有 yumdownloader 的最佳匹配包。然而,这并不像预期的那样工作,并且 x86_x64i686 正在下载具有 2 个可用架构的包。添加 --archlist=x86_64 没有任何区别。在配置文件中设置 multilib_policy=best 也没有任何区别。

我还检查了 repoquery 工具。如果我设置 --archlist=x86_64 那么只会列出 x86_64 包。只有 i686noarch 版本的将不会被提取。如果我设置 --archlist=x86_64,i686,noarch 那么结果类似于 yumdownloader,即正在拾取多个体系结构。

有没有办法只列出或下载最匹配的包?

我看到的唯一选择是完全手动执行 - 使用 repoquery 准备列表并删除重复项。但我更愿意找到更简洁和健壮的方法。

您可以做的是使用标准 yum 选项排除软件包。它被yumdownloader.

“继承”

示例:

yumdownloader libX11 --archlist=x86_64 --exclude="*.i686"

请注意,由于 multilib,i686 是 x86_64 的“子集”,尤其适用于库(几乎所有库都具有 i686 等效项)。确保你以后不会有任何实际需要 i686 库的软件......我见过的这种仅 i686 软件的唯一值得注意的例子是 steam.i686(根本没有 x86_64 版本),但话又说回来,谁在 RHEL 上播放它? (除了我自己)。