我目前有一个打包在RPM中的Java应用程序,它是为32位RedHat平台构建的,我想创建一个64位RPM,它与32位RPM大致相同,但是包括几个不同的.so文件。所有Java的东西在两个平台上都是相同的,所以它只是JNI .so的。
我的问题是:是否有可能让32位系统上的rpmbuild生成32位和64位RPM(来自不同的.spec文件),因为它只是已经重新打包 - 构建组件,还是需要在64位系统上构建64位RPM?
N.B。我实际上并没有在系统上构建任何本机。我只是重新包装已经建成的东西。
......反之亦然,我可以在64位系统上构建一个32位的吗?我真的更愿意只在一个系统上构建和打包它,而不是为单独的RPM运行两个单独的构建。
答案 0 :(得分:1)
正如Aaron所说,你可以在同一台机器(64位)上为多个发行版构建一个RPM,但你必须非常小心,否则你可能会遇到问题。我遇到的最大问题是你在RHEL 5上构建,然后你尝试部署到RHEL 6,因为RHEL 6安装了不同版本的RPM,它可能导致冲突并且无法安装。因此,在这种情况下,您有几个选择:
在两台机器上构建RPM,你已经说过你真的不想这样做。
如果你有磁盘空间,配置Mock,我之前已经使用了很多,只要你有磁盘空间并且软件包规范设计为拉入需要正确。
就我个人而言,我会给Mock一个机会,设置非常简单,只要有合适的回购,你就可以用最少的努力做你想做的事。如果构建失败,则日志对于RPM构建错误的内容非常全面。