複数の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(libradosがあります)。1、天秤座ではない2)...

librados2:i386で何が止まりますか?/usr/lib/i386-linux-gnu/librados.so.2.0.0librados2:amd64/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

おすすめ記事