有没有办法将 i386 RHEL4 机器改为运行 amd64 内核,但确保它仍将软件构建到相同的 i386 二进制文件中?
在 Debian 上,这似乎很简单:只需安装一个 amd64 内核(最坏的情况是,像这个人一样构建一个:
http://www.debian-administration.org/users/jonesy/weblog/1) 并在所有内容前面加上“linux32”前缀。那么考虑的所有内容uname -m
都不会改变,我只需要处理考虑的少数情况uname -r
。
Red Hat 的对应版本是什么?唯一的方法是在另一个磁盘上进行完整的 64 位安装,然后在任何人构建任何东西之前重新切换回 32 位系统吗?(即使是最好的例子似乎基于 Debian。
背景:我们制作了一个运行在 i386 RHEL4(变体)上的大型系统。但是,一些较大的 RHEL 构建机器现在拥有足够的 RAM,因此它们可能会从 64 位中受益(用于内核和一些较大的构建步骤)。我们的构建系统不支持交叉编译。
答案1
您可以在 RHEL 下使用 32 位用户空间和 64 位内核,但我不建议使用现有的 32 位安装并将 64 位内核塞入其中。至少您需要一些 64 位库和二进制文件才能使内核正常运行,包括 rpm 和 glibc 等基本程序。
-m32
此外,只要您通过并拥有适当的 32 位软件包,x86-64 RHEL 中的 gcc 就能够构建 32 位二进制文件*-devel
。