是否可以强制 apt-get 下载我想要安装的库的多架构二进制文件?
或者 apt-get 不是适合这个的工具?
答案1
@Tanasis 的回答是正确的,我已将其更新为 2021 年(Ubuntu 20.04 LTS)arm64
和armhf
。
添加所需的体系结构如下:
sudo dpkg --add-architecture armhf
sudo dpkg --add-architecture arm64
在以下位置创建一个新的 .list 文件
/etc/apt/sources.list.d
:sudo touch /etc/apt/sources.list.d/arm-cross-compile-sources.list
将默认源添加到该列表,并以体系结构(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
更新
/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
运行
sudo apt update
并确保没有错误现在安装具有新架构的软件包应该可以成功了:
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