在 Ubuntu 22.04 上设置 dpkg Multiarch,libc 依赖项错误

在 Ubuntu 22.04 上设置 dpkg Multiarch,libc 依赖项错误

我想对我的 Beaglebone Black 进行交叉编译并使用 APT 管理的包。

我已经安装了 crossbuild-essential-armhf 包,所以我确实有一个能够为 Beagle 平台构建的工具链,但我无法像在主机上通过 apt 那样定期使用其他库。

我肯定有可能误解了 dpkg 和 apt 的某些内容。

无论如何。

我试过了:https://wiki.debian.org/Multiarch/HOWTO取得了不同程度的成功。到目前为止我所做的:

  1. 将 armhf 架构添加到 dpkg 并完成 apt 更新后,APT 出现以下问题:

E:获取失败http://dk.archive.ubuntu.com/ubuntu/dists/jammy/main/binary-armhf/Packages 404 未找到 [IP: 130.225.254.116 80] E: 无法获取http://dk.archive.ubuntu.com/ubuntu/dists/jammy-updates/main/binary-armhf/Packages 404 未找到 [IP: 130.225.254.116 80] E: 无法获取http://dk.archive.ubuntu.com/ubuntu/dists/jammy-backports/main/binary-armhf/Packages 404 未找到 [IP: 130.225.254.116 80] E: 无法获取http://security.ubuntu.com/ubuntu/dists/jammy-security/main/binary-armhf/Packages 404 未找到 [IP: 91.189.91.81 80]

据我了解,armhf 软件包位于 ports.ubuntu.com,因此我添加了

deb [arch=armhf]http://ports.ubuntu.com/ubuntu-ports/jammy 主宇宙 多元宇宙

到我的 apt sources.list。这似乎有所帮助,APT 现在至少能够找到 libsqlite3-dev:armhf 等软件包

  1. 尝试安装 libsqlite3-dev:armhf 时,我遇到来自 apt 的以下信息:

以下软件包具有未满足的依赖关系:libsqlite3-dev:armhf:依赖:libsqlite3-0:armhf(= 3.37.2-2),但不会安装依赖:libc6-dev:armhf,但不会安装 E:无法纠正问题,您持有损坏的软件包。

然后我尝试安装 libc6-dev:armhf,结果如下:

以下软件包具有未满足的依赖项:libc-dev-bin:armhf:依赖:libc6:armhf(> 2.35)但不会安装依赖:libc6:armhf(< 2.36)但不会安装libc6-dev:armhf:依赖:libc6:armhf(= 2.35-0ubuntu3)但不会安装依赖:linux-libc-dev:armhf但不会安装依赖:libtirpc-dev:armhf但不会安装libcrypt1:armhf:依赖:libc6:armhf(>= 2.25)但不会安装libnsl-dev:armhf:依赖:libtirpc-dev:armhf但不会安装libnsl2:armhf:依赖:libc6:armhf(>= 2.33) 但不会安装 依赖: libtirpc3:armhf (>= 1.0.2) 但不会安装

libc6:armhf 在主存储库中的版本为 2.35:https://launchpad.net/ubuntu/jammy/armhf/libc6-dev

所以我真的不明白如何才能满足依赖关系?或者为什么不满足。

似乎 Libc6:armhf、linux-libc-dev:armhf、libtirpc-dev:armhf 和 libtirpc3:armhf 软件包在存储库中不可用,或者这些软件包的不同版本之间存在冲突。我觉得这很奇怪,所以我想我搞砸了什么或遗漏了什么。

附注:crossbuild-essential 包安装了 libc6-dev-armhf-cross,所以我确实安装了该库...

我在一台 Ubuntu 22.04 x86_64 机器上。

相关内容