homebrew/core 中的 Linux CI

我們目前使用 Ubuntu 22.04 在 homebrew/core 中進行裝瓶。

Ubuntu 與其他 Linux 發行版

截至 2022 年,約有 77% 的使用者使用 Ubuntu。這就是我們選擇此發行版作為基本 CI 映像的原因。自版本 14.04 以來,我們已成功將 Ubuntu 用於 CI。Ubuntu LTS 版本支援 5 年。每 2 年發布一個新的 LTS 版本。

即使在 Ubuntu 上編譯,我們的瓶子也與其他發行版(如 Debian/CentOS)相容。

過去和下一個版本

我們已將 CI 移至 Ubuntu 22.04

從 Ubuntu 16.04 移至 Ubuntu 22.04(因此跳過版本 18.04 和 20.04)所花費的時間比預期長。

我們計畫從 2022 年開始進行定期更新。我們的目標是為 CI 使用最新的 Ubuntu LTS 版本。

我們將在最新 Ubuntu LTS 版本發布後最早 3 個月,理想情況下不超過 12 個月,開始為 CI 使用該版本。

發行版 Glibc GCC 使用
Ubuntu 14.04 2.19 4 2014 年至 2017 年
Ubuntu 16.04 2.23 5 2017 年至 2022 年
Ubuntu 22.04 2.35 11 2022 年至 2024 年
Ubuntu 24.04 ? ? 2024 年至 2026 年

為什麼總是使用最新版本?

Homebrew 是一個滾動發布的套件管理員。我們嘗試在 macOS 和 Linux 上盡快發布最新事物。

當公式需要更新的 GCC,因為 CI 中的主機 GCC 太舊時,我們需要讓該公式依賴於更新的 Homebrew GCC。該公式的所有 C++ 依賴項也會立即獲得對 Homebrew GCC 的依賴項。儘管我們已採取措施確保這不再阻礙 GCC 更新,但它仍然會造成維護負擔。對於積極維護並嘗試使用 C++ 的更新功能的公式,這個問題更為明顯。我們決定不應讓公式因保持最新狀態而承擔維護負擔。當公式無法與更新的編譯器一起使用時,Homebrew 維護人員提交上游修復很有意義。當我們的主機編譯器太舊時,Homebrew 維護人員提交修復就沒那麼有意義了。

請注意,更多使用者需要安裝 glibc,因為他們的 glibc 版本通常太舊:磁碟空間很便宜,我們可以為我們的使用者處理這種情況。這種情況通常會在更新到新的 LTS 版本時發生,而且在最初幾個月中,採用新的 Ubuntu 的情況仍然很少。基於上述相同原因:我們希望保持領先地位,並溫和地提醒我們的使用者考慮更新其作業系統。

Fork me on GitHub