1

我目前有一个 Java 应用程序打包在一个为 32 位 RedHat 平台构建的 RPM 中,我想创建一个 64 位 RPM,它与 32 位的基本相同,但有几个不同的 .所以文件包括在内。所有 Java 的东西在两个平台上都是一样的,所以它只是 JNI .so 的。

我的问题是:是否可以让 rpmbuild 在 32 位系统上生成 32 位和 64 位 RPM(来自不同的 .spec 文件),因为它只是重新打包已经构建的组件,还是我需要构建64 位系统上的 64 位 RPM?

注意我实际上并没有在系统上构建任何本机内容。我只是重新包装已经构建的东西。

...或者反之亦然,我可以在 64 位系统上构建 32 位系统吗?我真的更愿意在一个系统上构建和打包它,而不是为单独的 RPM 运行两个单独的构建。

4

1 回答 1

1

正如 Aaron 所说,您可以在同一台机器(64 位)上为多个发行版构建 RPM,但您必须非常小心,否则您可能会遇到问题。我遇到的最大问题是你在 RHEL 5 上构建,然后你尝试部署到 RHEL 6,因为 RHEL 6 安装了不同版本的 RPM,它可能会导致冲突并无法安装。因此,在这种情况下,您有几个选择:

  1. 在两台机器上构建 RPM,你已经声明你真的不想这样做。

  2. 如果您有磁盘空间,请配置Mock,我之前已经使用过很多次了,只要您有磁盘空间并且包规范旨在正确引入需求,它就很容易上手。

就我个人而言,我会给 Mock 一个机会,它的设置非常简单,只要有适当的 repos 可用,你就可以用最少的努力做你想做的事。如果构建失败,日志会非常全面地说明 RPM 构建错误是什么。

于 2013-09-14T06:52:09.553 回答