Linux
分佈式建構系統
目前流行的 Linux 發行版(如 Ubuntu、Debian、RedHat 等)中使用了哪些分佈式建構工具?
例如,我們有大量具有依賴關係的包,並嘗試編譯所有這些包以用於發行版的新版本。一個一個地建構它們需要很多時間。我聽說過 distcc,但它在伺服器之間共享一個項目編譯,用於分佈式並行建構。
是否有任何工具可以分析包之間的依賴關係(例如,創建一個圖表)並創建一個用於建構包級並行性的計劃?例如,我們有包 p1、p2、p3、p4 和兩個伺服器。一台伺服器建構 p1,如果它們不相互依賴,則同時建構另一個 p2。
我需要在生產中使用的項目範例。
每個發行版都有自己的工具集,這裡沒有太多共享軟體。
Debian 使用
wanna-build
,buildd
和sbuild
,您都可以在 Debian 站點上找到它們的文件(也可以點擊連結)。wanna-build
維護建構隊列,buildd
選擇要建構的包並sbuild
建構它。使用“dep-wait”狀態wanna-build
跟踪缺少依賴項的包;包可以直接進入該狀態(如果它自己可以辨識缺少依賴項)或在建構失敗後由於缺少依賴項。如果您想設置本地建構基礎架構,可以使用教程。wanna-build
Fedora 使用Koji,它有大量文件。它還涉及許多不同的組件,包括
koji-hub
集中式數據庫前端和kojid
驅動建構的組件。不過我對 Koji 不太熟悉,所以我不知道它是如何集成來處理建構狀態的。其他發行版有其他建構系統,例如Launchpad。它們都處理您所關心的相同問題:所有包的集中視圖、多個建構系統以及接收建構結果的集中儲存庫。