Debian

為什麼我不能並排安裝多個 x86 和 x86_64 版本的庫?

  • November 27, 2017

編輯輸出:

# 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,而不是 librados 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

Multi-Arch: same如果它在其控制資訊中聲明,則只能為多個不同的體系結構共同安裝相同的包。(這樣做的先決條件是確保相關包的文件不會以有問題的方式重疊。)這個包還沒有這樣做,所以它不能共同安裝在多個體系結構上。您看到的Conflicts是由打包系統在內部為多個架構上未聲明為Multi-Arch: same.

即使已經修復,為了讓一切正常工作,您嘗試共同安裝的軟體包的所有依賴項本身也必須是可共同安裝的,或者必須具有某種其他類型的標籤(Multi-Arch: foreign或者Multi-Arch: allowed取決於具體情況)允許它們用於滿足跨架構的依賴關係。

有一個開放的錯誤要求這個包啟用多架構。

您可能想知道Pre-Depends: multiarch-support控製欄位。這是將共享庫移動到依賴於架構的路徑的一部分,這是製作庫包的先決條件Multi-Arch: same,但只是工作的一部分。

引用自:https://unix.stackexchange.com/questions/294318