为什么 Ubuntu 使用 eglibc 而不是 glibc?

abh*_*bhi 14 c glibc

64bit 12.10通过发出命令检查了我的 Ubuntu机器上的 libc 版本ldd --version

我看到 Ubuntu 使用eglibc而不是glibc. 由于egiblc是嵌入式设备,是否有为什么Ubuntu使用它,而不是标准的glibc的具体原因。

cha*_*aos 14

Ubuntu 基于 debian。这是维基百科的节选:

2009 年 5 月 6 日,宣布 Debian 将从 GNU C 库迁移到 EGLIBC,理由是 glibc 的开发过程存在问题。Debian 和它的几个衍生产品现在提供 EGLIBC 而不是 glibc。EGLIBC 是根据 GNU LGPL 许可的免费软件。

这些是原因(形式Debian 正在切换到 EGLIBC):

EGLIBC 是 GLIBC 的变体,它与原始 GLIBC 保持源代码和二进制兼容。虽然主要针对嵌入式架构,但它有一些非常好的点:

  • 更友好的上游(尤其是在嵌入式架构方面):“鼓励
    开发人员之间的合作、沟通、文明和尊重”(与此相反)。
  • 稳定的分支,修复了重要的错误(一个真正的分支,不像 GLIBC 那样保持不变)。
  • 更好地支持嵌入式架构。
  • 支持不同的 shell(GLIBC 只支持 bash)。
  • 支持使用 -Os 构建。
  • 可配置组件(我们真的需要 debian-installer 中的 NIS 或 RPC 支持吗?)。
  • 用于优化或 biarch 包的更好的测试套件。


小智 7

除了他们现在已经切换回来:

自 2014 年初以来,官方主页声明不再开发 EGLIBC,因为它的“目标现在正在 GLIBC 中直接解决”,并且 Debian 已为 Debian 8.0 (Jessie) 版本切换回 glibc[4]。-- 维基百科

  • 在最近的版本中,Ubuntu 也切换回来了。[对 libc6 的搜索](https://launchpad.net/ubuntu/+search?text=libc6)(这是在 Ubuntu 中提供 libc 的主要二进制包的名称)在 14.04 LTS Trusty Tahr 之前的版本中显示 eglibc ,然后是后续版本 14.10 Utopic Unicorn 和 15.04 Vivid Vervet 中的 glibc(在我撰写本文时处于测试阶段)。有关详细信息,请参阅 [eglibc](https://launchpad.net/ubuntu/+source/eglibc) 和 [glibc](https://launchpad.net/ubuntu/+source/glibc) 下游源包页面。*请随时将此信息添加到您的答案中。* (5认同)