【问题标题】:Can you build Rust for old (Redhat 5 vintage) Linux?你能为旧的(Redhat 5 老式)Linux 构建 Rust 吗?
【发布时间】:2014-09-08 16:01:17
【问题描述】:

Redhat 5 具有所需的 2.6.18 内核,但没有最新的 glibc、g++,当然也没有 clang。二进制分发不运行,抱怨 glibc 版本。

有没有人尝试过移植到旧的 Linux?我可以想象将一个带有旧内核但新编译器的 frankensystem 拼凑在一起,并尝试针对旧 glibc 进行编译或在一些新 glibc 中静态编译,但这似乎是一个令人担忧的过程。

只是想知道是否有人尝试过并可以提供指导?

我认为必须有一个发行版设置才能进行此类构建。例如,Anaconda 包含许多新技术,但在 Redhat 5 上运行良好。我想知道他们是如何构建它的?

更新:一旦你让一些更新的编译器在 RHEL5 上运行,仍然无法构建 Rust,因为它依赖于自身的工作二进制文件来引导。见:https://github.com/rust-lang/rust/issues/9545#issuecomment-54865031

【问题讨论】:

    标签: rust anaconda conda


    【解决方案1】:

    Anaconda 软件包是针对 CentOS 5(相当于 Redhat 5)构建的。重要的是针对足够旧的 glibc 进行编译,因为它严格向前兼容(如您所见)。 glibc 的版本通常与发行版的版本相关联,因此最好的办法是使用 CentOS 5 制作 VM 并在此基础上进行构建。

    所使用的编译器版本并不那么重要,事实上在某些情况下,需要使用比系统自带的旧编译器更新的编译器才能正常工作。我为 CentOS 5 构建了 gcc 4.8,您可以使用 conda (conda install -c asmeurer gcc) 获得它。

    【讨论】:

    • 谢谢。您预先构建的 gcc 非常有帮助。
    【解决方案2】:

    这个周末我遇到了这个问题,因为Skylight 支持 Linux 2.6.18,包括 CentOS 5.10,而且我们在代理中使用 Rust。

    Rust 核心团队的 Alex Crichton 对 get this working again 非常友好,他使用 CentOS 5.10 机器进行构建,该机器使用 glibc 2.5 和 Linux 2.6.18。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-09
      • 2015-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-19
      • 1970-01-01
      相关资源
      最近更新 更多