Debian
為什麼我不能並排安裝多個 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,而不是 librados 2)…是什麼阻止了
librados2:i386
in/usr/lib/i386-linux-gnu/librados.so.2.0.0
和librados2:amd64
in/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
,但只是工作的一部分。