rad*_*adj 8 apt cross-compilation
是否可以强制 apt-get 下载我要安装的库的多架构二进制文件?
或者 apt-get 不是正确的工具吗?
小智 13
@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
Run Code Online (Sandbox Code Playgroud)
更新/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
因为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
首先启用多架构
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)
| 归档时间: |
|
| 查看次数: |
12843 次 |
| 最近记录: |