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