4

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

4

2 回答 2

3

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

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

于 2014-09-08T19:04:40.143 回答
1

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

Rust 核心团队的 Alex Crichton 非常友好地通过使用 CentOS 5.10 机器进行构建,该机器使用 glibc 2.5 和 Linux 2.6.18 来再次工作。

于 2014-09-16T09:53:48.923 回答