为什么我无法并排安装多个 x86 和 x86_64 版本的库?

为什么我无法并排安装多个 x86 和 x86_64 版本的库?

编辑后的输出:

# apt-get install librados2:amd64 librados2:i386
The following packages have unmet dependencies:
 librados2:amd64 : Conflicts: librados2 but 0.80.7-2+deb8u1 is to be installed
 librados2 : Conflicts: librados2:amd64 but 0.80.7-2+deb8u1 is to be installed
E: Unable to correct problems, you have held broken packages.

# apt-cache show librados2:amd64=0.80.7-2+deb8u1 librados2:i386=0.80.7-2+deb8u1

Package: librados2
Version: 0.80.7-2+deb8u1
Architecture: amd64
Replaces: libcrush, libcrush1, librados, librados1
Depends: libboost-system1.55.0, libboost-thread1.55.0, libc6 (>= 2.14), libgcc1 (>= 1:4.1.1), libnspr4 (>= 2:4.9-2~) | libnspr4-0d (>= 1.8.0.10), libnss3 (>= 2:3.13.4-2~) | libnss3-1d (>= 3.12.0~1.9b1), libstdc++6 (>= 4.9), libuuid1 (>= 2.16)
Pre-Depends: multiarch-support
Conflicts: libcrush, libcrush1, librados, librados1
Tag: role::shared-lib
Section: libs


Package: librados2
Version: 0.80.7-2+deb8u1
Architecture: i386
Replaces: libcrush, libcrush1, librados, librados1
Depends: libboost-system1.55.0, libboost-thread1.55.0, libc6 (>= 2.9), libgcc1 (>= 1:4.1.1), libnspr4 (>= 2:4.9-2~) | libnspr4-0d (>= 1.8.0.10), libnss3 (>= 2:3.13.4-2~) | libnss3-1d (>= 3.12.0~1.9b1), libstdc++6 (>= 4.9), libuuid1 (>= 2.16)
Pre-Depends: multiarch-support
Conflicts: libcrush, libcrush1, librados, librados1
Tag: role::shared-lib
Section: libs

为什么Conflicts:?我在显示的冲突列表中没有看到这个库apt-cache info(有 librados1,不是天秤座2)...

是什么阻止了librados2:i386in/usr/lib/i386-linux-gnu/librados.so.2.0.0librados2:amd64in /usr/lib/x86_64-linux-gnu/librados.so.2.0.0

答案1

Multi-Arch: same如果同一包在其控制信息中声明,则只能为多个不同的体系结构共同安装。 (这样做的先决条件是确保相关包的文件不会以有问题的方式重叠。)此包尚未完成此操作,因此它无法在多个体系结构上共同安装。您看到的是Conflicts由打包系统在未声明为 的多个体系结构上具有相同名称的包内部生成的Multi-Arch: same

即使一旦修复了这个问题,为了让一切正常工作,您尝试共同安装的软件包的所有依赖项本身都必须是可共同安装的,或者必须具有某种其他类型的标签(Multi-Arch: foreign或者Multi-Arch: allowed视具体情况而定),这使得它们可以用来满足跨架构的依赖关系。

有一个打开错误要求这个包支持多架构。

您可能想知道Pre-Depends: multiarch-support控制字段。这是将共享库移动到依赖于体系结构的路径的一部分,这是制作库包的先决条件Multi-Arch: same,但只是工作的一部分。

相关内容