3

Edited output:

# 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

Why Conflicts:? I don't see this library in conflict list displayed by apt-cache info (there is librados1, not librados2)...

What prevents having librados2:i386 in /usr/lib/i386-linux-gnu/librados.so.2.0.0 and librados2:amd64 in /usr/lib/x86_64-linux-gnu/librados.so.2.0.0?

  • Just checking, but you do have i386 under dpkg --print-foreign-architectures, right? – grochmal Jul 6 '16 at 22:27
  • 1
    dpkg --print-architecture -> i386; dpkg --print-foreign-architectures -> amd64. For some other libraries i386+amd64 already successfully installed side by side. – Vi. Jul 7 '16 at 0:51
1

The same package can only be co-installed for multiple different architectures if it declares Multi-Arch: same in its control information. (A prerequisite for this is making sure that the files for the packages in question don't overlap in problematic ways.) That has not been done for this package, so it can't be co-installed on multiple architectures. The Conflicts that you see is generated internally by the packaging system for packages with the same name on multiple architectures that aren't declared as Multi-Arch: same.

Even once that's been fixed, for everything to work properly, all dependencies of the packages you're trying to co-install must themselves be co-installable, or must have some other kind of tag (Multi-Arch: foreign or Multi-Arch: allowed, depending on the exact situation) that allows them to be used to satisfy dependencies across architectures.

There is an open bug asking for this package to be multiarch-enabled.

You may wonder about the Pre-Depends: multiarch-support control field. That was part of moving shared libraries into architecture-dependent paths, which is a prerequisite for making a library package Multi-Arch: same, but was only part of the job.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.