为啥 linux multiarch 使用 x86_64-linux-gnu 而不是 lib64?
Posted
技术标签:
【中文标题】为啥 linux multiarch 使用 x86_64-linux-gnu 而不是 lib64?【英文标题】:Why does linux multiarch use x86_64-linux-gnu instead of lib64?为什么 linux multiarch 使用 x86_64-linux-gnu 而不是 lib64? 【发布时间】:2012-08-31 23:31:18 【问题描述】:我最近在 linux 中部署 32 位和 64 位库时遇到了 multiarch。
出于好奇,为什么 /lib64 被放弃了,取而代之的是/lib/x86_64-linux-gnu 这似乎过于复杂,但一定有原因。
【问题讨论】:
这是configure
给定(即猜测)的主机三元组;它考虑了 ABI;例如 x32 是 x86-64 的不同 ABI。
什么时候 - 我没注意到 - 你是怎么发现的?
@AdrianCornish:一些发行版采用了 Debian 多架构布局,其他发行版仍然使用 lib64。
@janneb 酷。 - Debian 从来都不是我喜欢的发行版之一。无论如何添加不是 lib 和 lib64 的多架构布局
@AdrianCornish:对不起,我不知道“无论如何添加不是 lib 和 lib64 的多架构布局”应该是什么意思。
【参考方案1】:
长版可以在http://wiki.debian.org/Multiarch找到,特别是http://wiki.debian.org/Multiarch/TheCaseForMultiarch。
简短的版本是,使用三元组是一种更通用的解决方案,它允许使用多个 ABI(例如 x86 和 x32,正如 Basile 在评论中提到的那样)、模拟器、交叉编译器等,而无需求助于各种技巧.
Fedora 或 OpenSUSE 等非基于 Debian 的发行版是否会采用这一点还有待观察;到目前为止,他们似乎没有那么感兴趣。
【讨论】:
以上是关于为啥 linux multiarch 使用 x86_64-linux-gnu 而不是 lib64?的主要内容,如果未能解决你的问题,请参考以下文章
Linux 是不是将 x86 CPU 的 PCID 功能用于 TLB?如果不是,为啥?
qemu-user-static, 在x86机器上编译arm架构docker
ubuntu无法安装ia32-libs库,提示没有可用的软件包
vbox丢失*MultiArch_amd64.msi或者*MultiArch_x86.msi重新制作