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

rad*_*adj 8 apt cross-compilation

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

或者 apt-get 不是正确的工具吗?

小智 13

@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
    
    Run Code Online (Sandbox Code Playgroud)
  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


Tan*_*sis 6

因为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
Run Code Online (Sandbox Code Playgroud)

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

注意:不要忘记添加外国架构:dpkg --add-architecture arm64


May*_*hux 5

首先启用多架构

dpkg --add-architecture <arch>
Run Code Online (Sandbox Code Playgroud)

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

现在更新你的 sources.list

sudo apt-get update
Run Code Online (Sandbox Code Playgroud)

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

apt-get install package:architecture
Run Code Online (Sandbox Code Playgroud)

例子:

apt-get install gedit:i386
Run Code Online (Sandbox Code Playgroud)

  • arm64 有什么进展/修复吗? (2认同)