我正在为一个相当大和旧的工业软件开发构建系统。构建的结果是,它的速度约为 20 rpm(使用 rpmbuild 从头开始构建,通过 setup.py 从头开始构建,修补并重新构建 src.rpm)。
在不同的机器(所有 Centos 6.4 和 6.9)上运行构建会产生与包的最终架构不一致的结果。一台机器吐出所有 i386 包。在其他机器上,有些软件包来自 i386,有些软件包来自 i686。结果在任何一台机器上都是一致的,但在不同机器之间却不一致。
我的问题是:
哪些因素控制 rpmbuild 是否生成 i386 软件包与 i686 软件包?
答案1
有几个因素控制着生成的架构。
1) 在“spec”文件中,每个包可以包含BuildArch
具有特定架构的字段。
2) 如果“spec”文件中的包没有BuildArch
字段,则构建包将具有目标构建系统架构。
3)旧版本的rpm
命令有--buildarch <arch>
定义 arch 的选项。