安装 libx:i386 和 lib32x 之间的区别

安装 libx:i386 和 lib32x 之间的区别

Ubuntu 存储库中有一系列可用的库,例如lib32stdc++6lib32ncurses5。您可以在 64 位系统上安装这些库,也可以安装libstdc++6:i386libncurses5:i386。我很想知道这两种类型的软件包之间有什么区别。

实际的区别是什么?为什么它们都可用?在印象中这libx:i386是新的做事方式,这种方法是否总是优于安装lib32x变体?已经安装了几个lib32x和几个libx:i386库也让我怀疑是否应该通过用对应的包替换它们来切换到仅一种类型的包。

答案1

这些软件包之间的实际区别在于库的位置。使用libfoo:i386,库最终位于多架构路径中,例如 ,/usr/lib/i386-linux-gnu而使用 ,lib32foo:amd64库最终位于“旧”路径中,例如/usr/lib32。在遥远的未来,我们将摆脱所有lib32foo软件包,但我们还没有做到这一点。目前至少lib32stdc++6需要 进行构建,因为它构建能够支持诸如选择目标体系结构(即生成的二进制文件的体系结构)之类的开关。如果没有这些软件包, 的构建依赖项将跨越体系结构边界,而这目前尚不受支持。还有一些问题需要保留这些软件包一段时间。gcc-X.Ygcc-X.Y-multilib-m32lib32foogcc-X.Ylib32foo

相关内容