为什么为不同的架构安装 libc6 对于 armhf 不起作用?

为什么为不同的架构安装 libc6 对于 armhf 不起作用?

我正在尝试在已启用 i386 的 64 位系统上进行交叉编译:

$ dpkg --print-architecture
amd64
$ dpkg --print-foreign-architectures
i386
armhf

仅启用 jessie 存储库:

$ apt-cache policy libc6:armhf
libc6:armhf:
  Installed: (none)
  Candidate: 2.19-18+deb8u1
  Version table:
     2.19-18+deb8u1 0
        700 http://http.debian.net/debian/ jessie/main armhf Packages

然而,我遇到了一个奇怪的冲突,我无法破译(“ libc6:armhf : Breaks: libc6 (!= 2.19-18+deb8u1)”),完整的 apt-get 输出如下。

i386 libc 在这个系统上运行得很好,但是armhf 版本(以及armel)失败了。我该如何看待这个 apt-get 错误以及如何修复它?

$ apt-get install libc6:armhf 读取软件包列表...完成 构建依赖关系树
读取状态信息...完成 某些软件包无法安装。这可能意味着您请求了一种不可能的情况,或者如果您使用的是不稳定的发行版,某些所需的软件包尚未创建或已移出传入。以下信息可能有助于解决问题:

The following packages have unmet dependencies:
 init : PreDepends: systemd-sysv but it is not going to be installed or
                    sysvinit-core but it is not going to be installed or
                    upstart
 libc6 : Breaks: libc6:armhf (!= 2.19-19) but 2.19-18+deb8u1 is to be installed
 libc6:armhf : Breaks: libc6 (!= 2.19-18+deb8u1) but 2.19-19 is to be installed
 libcurl3-gnutls : Depends: libgnutls-deb0-28 (>= 3.3.0) but it is not going to be installed
                   Depends: libldap-2.4-2 (>= 2.4.7) but it is not going to be installed
                   Depends: librtmp1 (>= 2.4+20131018.git79459a2-3~) but it is not going to be installed
                   Depends: libssh2-1 (>= 1.2.6) but it is not going to be installed
                   Recommends: ca-certificates but it is not going to be installed
 libqt5core5a : Depends: libglib2.0-0 (>= 2.22.0) but it is not going to be installed
                Depends: libicu52 (>= 52~m1-1~) but it is not going to be installed
 libqt5gui5 : Depends: fontconfig
              Depends: libegl1-mesa (>= 7.8.1) but it is not going to be installed or
                       libegl1-x11
              Depends: libfontconfig1 (>= 2.11) but it is not going to be installed
              Depends: libgbm1 (>= 8.1~0) but it is not going to be installed
              Depends: libgl1-mesa-glx but it is not going to be installed or
                       libgl1
              Depends: libglib2.0-0 (>= 2.12.0) but it is not going to be installed
              Depends: libgtk2.0-0 (>= 2.24.0) but it is not going to be installed
              Depends: libharfbuzz0b (>= 0.9.11) but it is not going to be installed
              Depends: libice6 (>= 1:1.0.0) but it is not going to be installed
              Depends: libpango-1.0-0 (>= 1.14.0) but it is not going to be installed
              Depends: libsm6 but it is not going to be installed
              Depends: libx11-6 but it is not going to be installed
              Depends: libx11-xcb1 but it is not going to be installed
              Depends: libxcb-glx0 but it is not going to be installed
              Depends: libxcb-icccm4 (>= 0.4.1) but it is not going to be installed
              Depends: libxcb-image0 (>= 0.2.1) but it is not going to be installed
              Depends: libxcb-keysyms1 (>= 0.4.0) but it is not going to be installed
              Depends: libxcb-randr0 (>= 1.3) but it is not going to be installed
              Depends: libxcb-render-util0 but it is not going to be installed
              Depends: libxcb-render0 but it is not going to be installed
              Depends: libxcb-shape0 but it is not going to be installed
              Depends: libxcb-shm0 but it is not going to be installed
              Depends: libxcb-sync1 but it is not going to be installed
              Depends: libxcb-xfixes0 but it is not going to be installed
              Depends: libxcb-xkb1 but it is not going to be installed
              Depends: libxcb1 but it is not going to be installed
              Depends: libxi6 (>= 2:1.2.99.4) but it is not going to be installed
              Depends: libxkbcommon-x11-0 (>= 0.4.0) but it is not going to be installed
              Depends: libxrender1 but it is not going to be installed
 libqt5widgets5 : Depends: libglib2.0-0 (>= 2.12.0) but it is not going to be installed
                  Depends: libx11-6 but it is not going to be installed
 libssl1.0.0 : Depends: debconf (>= 0.5) but it is not going to be installed or
                        debconf-2.0
 live-config-sysvinit : Depends: sysvinit-core but it is not going to be installed or
                                 sysvinit (< 2.88dsf-44) but it is not going to be installed
 nginx-common : Depends: init-system-helpers (>= 1.18~) but it is not going to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

答案1

libc6 : Breaks: libc6:armhf (!= 2.19-19) but 2.19-18+deb8u1 is to be installed
libc6:armhf : Breaks: libc6 (!= 2.19-18+deb8u1) but 2.19-19 is to be installed

Debian 多架构的规则之一是版本必须跨架构完全匹配。 Debian jessie 有版本2.19-18+deb8u1,但不知何故你最终2.19-19安装了 amd64(大概还有 i386)。

我不知道你的系统最初是如何进入这种状态的。也许在某个时候,您或以前的管理员将其更改sources.list为测试,然后将其更改回杰西。

从 snapshot.debian.org 下载 armhf 的 2.19-19 并使用 dpkg 手动安装可能是一个解决方案。

http://snapshot.debian.org/archive/debian/20150710T034220Z/pool/main/g/glibc/libc6_2.19-19_armhf.deb

相关内容