Linux

為多個發行版/平台編譯和建構 Linux 包

  • October 23, 2020

我的公司有一個用 C 語言為 Linux 平台編寫的軟體產品,使用自動工具建構並通過二進制包分發。為了製作二進製文件,我們首先生成一個源 RPM,然後從 SRPM 編譯源。

目前我們只為 64 位 Fedora 10 提供 RPM 包,但我們希望開始為多個 Linux 發行版(32 位和 64 位)以及可能每個發行版的不同版本(例如 Fedora 11 以及作為 Fedora 10)。

我聽說為多種 Linux 風格生成建構的最佳方法是擁有一個建構伺服器,並為要建構的每組包使用不同的 chroot 環境。有沒有人有一個很好的資源可以更詳細地解釋這一點,也許有使用這種建構機制的知名項目的例子,或者有更好的替代方案來實現相同的目標?

注意 - 我非常熟悉如何使用 checkinstall 等工具為不同的發行版生成正確格式的包。我不太熟悉的是如何在同一台機器上多次編譯相同的程式碼,並最終為我想要打包的每個發行版提供正確的二進製文件。

我強烈建議您查看 openSUSE 建構服務。他們在 Xen 虛擬伺服器中設置了所有不同的發行版和架構,並且支持各種包,包括 RPM 和 DEB 格式。它將為您節省大量時間並避免自己設置每台伺服器的麻煩,更不用說獲得所有包含和建構依賴項所需的時間了。

http://en.opensuse.org/Build_Service

編輯:附帶說明,如果您有安全問題,您可以下載程式碼並在您自己的一台伺服器上設置 OBS,而不是使用公共伺服器。

引用自:https://serverfault.com/questions/14011