【问题标题】:How to download only packages suitable for 64 bit architecture?如何只下载适合 64 位架构的软件包?
【发布时间】:2022-02-23 15:22:43
【问题描述】:

我使用的是 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 packags。只有i686noarch 版本的将不会被拾取。如果我设置--archlist=x86_64,i686,noarch,那么结果类似于yumdownloader,即正在选择多个架构。

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

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

【问题讨论】:

    标签: centos centos7 yum


    【解决方案1】:

    您可以做的是使用标准的yum 选项来排除软件包。它是由yumdownloader“继承”的。

    例子:

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

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

    【讨论】:

    • 你是对的。由于列出软件包时的一些错误,我的印象是要安装许多仅 i686 的软件包。因此我没有考虑这种解决方案但实际上根本没有这样的包,这种方法非常有效。
    猜你喜欢
    • 2017-02-04
    • 1970-01-01
    • 2018-08-05
    • 2011-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-02
    相关资源
    最近更新 更多