2014-09-12 44 views
0

我使用Vagrant和VirtualBox爲我們的產品設置了可重複的構建環境。我們的目標是RHEL7,Oracle7和Ubuntu 14.我已經閱讀了一些RPM構建指南,但有一點我不清楚。以RHEL6爲例,假設我在RHEL 6.4上構建了一個rpm,但想要確保6.0和6.0以上的兼容性。生成的RPM是否與整個RHEL 6系列兼容,還是我需要在6.0上構建才能確保?兼容RPM RPM構建環境

基本上,我試圖決定是否應該讓Vagrant將系統更新到我的rpm構建環境中的最新次要版本和軟件包。

回答

0

我一直在假設兼容性保證是從系列中的任何地方到系列中的任何地方,但我至少見過一個實例被破壞(我不知道這是否意外或不)。

因此,爲了安全起見,我可能會建議使用您正式要支持的系列的最早版本。

1

一般來說,只要你只依賴公共接口。確定一個公共接口是什麼,並不是那麼容易。

Red Hat Enterprise Linux: Application Compatibility GUIDE

在一個主要版本的生命週期中,紅帽使得商業 合理的努力來維護所有次要版本和勘誤公告的核心 運行環境的二進制兼容性。

這是您看起來最好的保證。編輯:另請參見Red Hat Enterprise Linux Application Compatibility Policies

在RHEL 5.x和6.x期間,我們已經構建了許多項目,其中的二進制文件在較舊的次版本上運行, 我沒有看到任何問題。 (雖然這些應用程序的二進制接口是最小的,但僅限於libc/libstdC++和其他3-4個庫以及一些python程序)

(作爲一個方面說明,如果您正在構建內核模塊,內核將提供否ABI保證,並可能在次要版本之間進行更改。)