2013-05-01 34 views
1

我目前有一個Java應用程序打包在一個爲32位RedHat平臺構建的RPM中,我想創建一個64位的RPM,這與32位的基本相同,但是有一對包括不同的.so文件。所有Java的東西在兩個平臺上都是一樣的,所以它只是JNI .so。我可以在一臺機器上爲兩個不同的平臺構建RPM嗎?

我的問題是:是否有可能具有的rpmbuild在32位系統上同時生成,因爲它在32位和64位的RPM(來自不同的.spec文件),只是重新包裝已經內置組件,或我是否需要在64位系統上構建64位RPM?

N.B.我實際上並沒有在系統上創建任何本地的東西。我只是重新包裝已經建成的東西。

...反之亦然,我可以在64位系統上構建一個32位系統嗎?我真的更喜歡在一個系統上構建和打包,而不是爲單獨的RPM運行兩個單獨的構建。

+1

您可以在64位機器上同時創建32位和64位。我用VM做了相反的事情,但我不確定是否需要這樣做。我聽說你可以使用「模擬」,但從來沒有足夠的關注追求它。 – 2013-05-02 01:56:36

回答

1

正如Aaron所說的,您可以在同一臺計算機(64位)上爲多個發行版構建RPM,但您必須非常小心,否則可能會遇到問題。我遇到的最大問題是您在RHEL 5上構建,然後嘗試部署到RHEL 6,因爲RHEL 6安裝了不同版本的RPM,所以可能會導致衝突並且無法安裝。因此,在這種情況下,您有幾種選擇:

  1. 建立在兩臺機器上的RPM,你說你真的不希望這樣做。

  2. 如果您有磁盤空間,請配置Mock,我已經使用過它一噸,並且只要您有磁盤空間並且軟件包規範需要正確設置,就很容易開始使用。

個人而言,我想給模擬了一槍,這是相當簡單的設置,並允許你做你想做的以最小的努力,只要適當的回購協議是可用的。在構建失敗的情況下,關於RPM構建錯誤是什麼,日誌非常全面。

相關問題