如何使用 apt-get 下载多架构库?

如何使用 apt-get 下载多架构库?

是否可以强制 apt-get 下载我想要安装的库的多架构二进制文件?

或者 apt-get 不是适合这个的工具?

答案1

@Tanasis 的回答是正确的,我已将其更新为 2021 年(Ubuntu 20.04 LTS)arm64armhf

  1. 添加所需的体系结构如下:

    sudo dpkg --add-architecture armhf

    sudo dpkg --add-architecture arm64

  2. 在以下位置创建一个新的 .list 文件/etc/apt/sources.list.d

    sudo touch /etc/apt/sources.list.d/arm-cross-compile-sources.list

  3. 将默认源添加到该列表,并以体系结构(armhf、arm64)作为前缀,如下所示:

    deb [arch=armhf,arm64] http://ports.ubuntu.com/ focal main restricted
    deb [arch=armhf,arm64] http://ports.ubuntu.com/ focal-updates main restricted
    deb [arch=armhf,arm64] http://ports.ubuntu.com/ focal universe
    deb [arch=armhf,arm64] http://ports.ubuntu.com/ focal-updates universe
    deb [arch=armhf,arm64] http://ports.ubuntu.com/ focal multiverse
    deb [arch=armhf,arm64] http://ports.ubuntu.com/ focal-updates multiverse
    deb [arch=armhf,arm64] http://ports.ubuntu.com/ focal-backports main restricted universe multiverse
    
  4. 更新/etc/apt/sources.list以包含您的默认体系结构(如果尚未包含),否则 apt 将尝试在这些源中使用您新添加的体系结构,这可能会导致错误,就像我遇到的那样。按如下方式[arch=amd64]为每一行添加:/etc/apt/sources.list

    deb [arch=amd64] http://us.archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse

  5. 运行sudo apt update并确保没有错误

  6. 现在安装具有新架构的软件包应该可以成功了:

    sudo apt install libasound2-dev:arm64

答案2

率先实现多架构

dpkg --add-architecture <arch>

现在设置 apt-sources 来添加新架构的新存储库(如果需要)

现在更新你的 sources.list

sudo apt-get update

现在,你可以定期通过 apt-get 安装多架构软件包,但必须指定要下载的架构

apt-get install package:architecture

例子:

apt-get install gedit:i386

答案3

因为arm64我正在执行以下操作/etc/apt/sources.list

Ubuntu 16.04(xenial)示例:

我将所有当前(默认)存储库标记为[arch=<current_os_arch>],例如

deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ xenial main restricted

我添加了以下内容:

deb [arch=arm64] http://ports.ubuntu.com/ xenial main restricted

deb [arch=arm64] http://ports.ubuntu.com/ xenial-updates main restricted

deb [arch=arm64] http://ports.ubuntu.com/ xenial universe
deb [arch=arm64] http://ports.ubuntu.com/ xenial-updates universe

deb [arch=arm64] http://ports.ubuntu.com/ xenial multiverse
deb [arch=arm64] http://ports.ubuntu.com/ xenial-updates multiverse

deb [arch=arm64] http://ports.ubuntu.com/ xenial-backports main restricted universe multiverse

不确定这是否是正确的修复方法,但至少它似乎有效。

笔记:别忘了添加外国建筑:dpkg --add-architecture arm64

相关内容