CentOS、Rocky Linux 與 AlmaLinux 的演變與差異
深入了解 Red Hat 產品線的歷史演變。從 Fedora 與 RHEL 的分拆,到 CentOS 8 提前終止支援的背景,解析 Rocky Linux 與 AlmaLinux 如何填補企業級 Linux 的免費替代方案缺口。
為何會有兩個免費的 Red Hat Enterprise Linux 重建版本
Rocky Linux 與 AlmaLinux 的出現,是因為 Red Hat 在使用者預期的時程前數年,終止了 CentOS Linux。CentOS 曾是 Red Hat Enterprise Linux (RHEL) 的免費、無品牌重建版本,並享有同樣長期的支援週期。2020 年 12 月 8 日,CentOS Project 宣布 CentOS Linux 8 將於 2021 年底終止,而非原定的 2029 年。該公告發布後一週內,隨即出現了兩個替代專案,且兩者至今仍持續發布。
唯有了解 CentOS 的本質,以及為何商業產品的免費複製品能獲准存在,才能理解該公告的背景。此脈絡始於 2003 年。
2003 年 Red Hat Linux 的轉向:Fedora 與 RHEL
Red Hat 最初的產品是名為 Red Hat Linux 的盒裝發行版。第一個非測試版本於 1995 年 5 月發布。最後一個版本 Red Hat Linux 9 於 2003 年 3 月 31 日發行,並於 2004 年 4 月 30 日終止支援。
當時 Red Hat 已轉向企業銷售,而企業需要盒裝產品無法提供的特性:一個能穩定維持數年、僅提供安全性修補且不會有意外升級的版本。Red Hat 為此開發了 Red Hat Linux Advanced Server,並於 2002 年 3 月更名為 Red Hat Enterprise Linux 2.1。RHEL 採取訂閱制,按每台系統每年收費。訂閱內容包含更新與技術支援,同時也涵蓋認證:硬體供應商與商業軟體廠商會針對 RHEL 進行測試,並將其列入支援條款中。
當時免費發行版已無明確定位,因此 Red Hat 將其與外部社群專案合併。Fedora Project 與 Red Hat Project 於 2003 年 9 月 22 日正式合併。Fedora 成為快速、免費且優先整合新技術的發行版;RHEL 則成為從中組建、步調緩慢且需付費的發行版。自此之後,開發流程皆依循此方向:由 Fedora 引領,RHEL 跟進。
這次分拆留下了一個缺口。許多使用者希望擁有 RHEL 的 10 年生命週期卻無需支付伺服器訂閱費用,而 Fedora 無法滿足此需求,因為 Fedora 的單一版本支援週期僅約 13 個月。
為什麼 RHEL 可以進行免費重建?
RHEL 幾乎完全由自由授權的軟體所建構,其中 GNU General Public License (GPL) 是關鍵。該授權要求任何取得二進位檔案的人,也必須能取得對應的原始碼。Red Hat 透過公開方式履行此義務,將原始碼 RPM (SRPM,即各元件的封裝原始碼) 發布於公開伺服器,隨後亦發布於 git.centos.org 儲存庫。
原始碼並不等同於完整產品。RHEL 中有兩個部分並非自由複製。Red Hat 的商標歸 Red Hat 所有,因此重建者必須移除所有標誌及提及該名稱的內容。付費服務亦受限於付費牆之後:包括更新伺服器、支援合約、認證流程,以及描述各項修復的 errata。
其運作方式易於描述。取得已發布的原始碼、移除品牌標識、重新編譯,並發布結果。其目標是達到 bug-for-bug 的相容性,這意味著重建版本會攜帶與 RHEL 相同的修補程式與行為,包含其中的錯誤。這種精確度正是重點所在,因為商業軟體是針對 RHEL 進行認證的。若重建版本的行為完全一致,該軟體便能在其上執行,儘管供應商不會對此提供支援。
CentOS 的用途為何?
CentOS 代表 Community ENTerprise Operating System。它源自 2002 年由 Gregory Kurtzer 發起的 cAos Linux 專案。第一個 CentOS 版本於 2004 年 5 月 14 日發布,版本號為 2,因為它是基於 RHEL 2.1AS 建構而成。
其吸引力在於生命週期。每個 CentOS 版本都追隨 RHEL 的 10 年支援週期,且完全免費。託管公司將其作為預設映像檔,大學將其運行於叢集上,設備供應商將其內建於產品中,控制台軟體也預設支援它。若您在 2006 年至 2020 年間租用過 虛擬私人伺服器,CentOS 幾乎都會出現在作業系統選單中,且通常是預設選項。
CentOS Linux 7 展現了此承諾的落實。它於 2014 年 7 月 7 日發布,安全支援持續至 2024 年 6 月 30 日,僅比完整的 10 年少幾天。正是這項紀錄,讓使用者能放心地針對下一個版本制定 10 年計畫。
2014 年 CentOS 加入 Red Hat 後的變革
2014 年 1 月 7 日,Red Hat 與 CentOS Project 宣布雙方結盟。當時的 Red Hat 技術長 Brian Stevens 與 CentOS 首席開發者 Karanbir Singh 共同發表了此項聲明。Red Hat 投入了人力與基礎設施資源,多位 CentOS 核心開發者成為 Red Hat 員工,該專案亦成立了正式的管理委員會。
對使用者而言,顯著的影響是正面的。在每個 RHEL 版本發布後,CentOS 的建置速度變得更快。原始碼遷移至 git.centos.org。特別興趣小組(Special Interest Groups)則在基礎發行版之上開發了額外內容,例如虛擬化與儲存堆疊。
結構上的變革則較為低調,但這正是六年後產生關鍵影響的因素。這個負責重建 RHEL 的專案,現在由販售 RHEL 的公司提供資金並配置主要人力。在該架構下,Red Hat 並無義務維持此重建版本的運作。
為什麼 CentOS Linux 8 在 2021 年終止支援?
CentOS Linux 8 於 2019 年 9 月 24 日發布。由於 RHEL 8 的支援期限至 2029 年 5 月 31 日,因此 CentOS Linux 8 原本也被預期能支援至 2029 年。
2020 年 12 月 8 日,Rich Bowen 於 CentOS 部落格發表了「CentOS 專案將重心轉向 CentOS Stream」一文。文中宣布 CentOS Linux 8 將於 2021 年 12 月 31 日終止支援,而 CentOS Linux 7 則維持原定的 2024 年 6 月 30 日期限。官方給出的理由是該專案的未來方向為 CentOS Stream。
The data behind this chart
[
{
"label": "Announced at release, September 2019",
"support_window": 9.7
},
{
"label": "Delivered, ended December 2021",
"support_window": 2.3
}
]CentOS Linux 8 發布時的預期支援週期約為 9.7 年,但實際僅提供了約 2.3 年。此變動並未移除任何功能,程式碼品質亦未下降。使用者所失去的是一個早已排入規劃的期限,且當時這些機器已投入生產環境,而官方僅給予一年多的預告期。在伺服器叢集中遷移作業系統屬於計畫性工作,此舉導致該任務變成了附帶截止日期的非計畫性工作。
究竟什麼是 CentOS Stream?
大多數報導仍將 CentOS Stream 描述為取代 CentOS Linux 的產品。雖然時間點吻合,但這種描述並不正確,因為這兩項產品的定位截然不同。
CentOS Linux 是 RHEL 的下游。Red Hat 發布 RHEL 次要版本後,CentOS 再進行重建。因此,複製版本總是晚於原始版本出現。
CentOS Stream 則是 RHEL 的上游。它是組裝下一個 RHEL 次要版本的公開分支。開發流程從 Fedora 流向 CentOS Stream,再進入 RHEL,因此套件會先出現在 Stream 中,隨後才進入 RHEL 的次要版本。由於 Stream 是持續交付的,它不會像已發布的 RHEL 那樣在次要版本之間保持靜止。
這使得 Stream 能勝任 CentOS Linux 無法完成的任務。如果您維護的軟體必須在下一個 RHEL 次要版本中持續運作,Stream 能讓您提前數月預覽該版本。如果您希望修復 RHEL 中的錯誤,Stream 提供了一個提交修補程式的管道,這是下游重建版無法提供的功能。Red Hat 在 2020 年提出的論點是,這將被動的複製轉變為社群能夠實際參與變更的發行版。
對於 CentOS Linux 使用者而言,Stream 仍不是理想的替代品,其支援週期即證明了這一點。CentOS Stream 10 於 2024 年 12 月 12 日發布,支援週期約為 5 年,而 RHEL 則為 10 年。採用 10 年計畫維運伺服器叢集的團隊,並未獲得該計畫的加速版本,而是收到了一項用途完全不同的產品。
Rocky Linux 與 AlmaLinux 的起源
Rocky Linux 於 2020 年 12 月 8 日宣布,與 CentOS 發布公告為同一天。該專案由 CentOS 的創始人 Gregory Kurtzer 發起。專案名稱是為了向 CentOS 的早期共同創辦人 Rocky McGaugh 致敬。該專案由 Rocky Enterprise Software Foundation (RESF) 管理,主要商業支持者為 Kurtzer 創立的 CIQ 公司。2021 年 4 月底出現了發布候選版本,隨後於 2021 年 6 月 21 日發布了第一個穩定版本 Rocky Linux 8.4 "Green Obsidian"。
AlmaLinux 則源自 CloudLinux,該公司當時已向主機服務供應商銷售基於 RHEL 的發行版。2020 年 12 月 15 日,CloudLinux 承諾每年投入超過 100 萬美元用於開發免費的 RHEL 重建版,當時代號為 Project Lenix。AlmaLinux 的名稱於 2021 年 1 月 12 日公布,測試版於 2 月 1 日推出,AlmaLinux 8.3 "Purple Manul" 則於 2021 年 3 月 30 日發布。同日,所有權移交給了 AlmaLinux OS Foundation,這是一個持有商標並營運專案委員會的非營利組織。
這兩個專案以不同的治理模式解決了相同的問題。Rocky 源自 CentOS 的創始人,並圍繞其建立了一家公司;AlmaLinux 則源自一家在發布當天就將商標移交給基金會的公司。在兩年的時間裡,兩者的實際差異很小,且都為 CentOS Linux 使用者提供了他們所失去的替代方案。
Red Hat 於 2023 年對 RHEL 原始碼所做的變更
2023 年 6 月 21 日,時任 Red Hat 核心平台副總裁的 Mike McGrath 發布了「推動 CentOS Stream 的演進」。文中關鍵指出,CentOS Stream 將成為公開 RHEL 相關原始碼發布的唯一儲存庫。原本推送至 git.centos.org 的 RHEL 原始碼已停止更新。
RHEL 客戶與合作夥伴仍可透過客戶入口網站存取 RHEL 原始碼,此舉符合 GPL 規範,因為該義務僅針對接收二進位檔案的對象。變更之處在於公開管道。過去針對每個 RHEL 小版本發布內容的逐套件紀錄不再公開,且 CentOS Stream 的版本領先於 RHEL,而非與其同步,因此僅依賴 Stream 的重建專案無法精確重現已發布的小版本。
Red Hat 的立場是 Stream 為上游,公開原始碼應歸於上游。重建專案的立場則是此變更移除了他們自 2004 年以來建立的基礎。兩種描述皆屬實。雙方的分歧在於對授權條款目的之認知,而非條款本身的文字內容。
重建版如何回應,以及 OpenELA 是什麼
Rocky Linux 最先做出回應。在 2023 年 6 月 29 日發布的公告中,該專案表示將持續透過不受額外協議限制的管道取得 RHEL 原始碼:即 Red Hat 的 Universal Base Image (UBI) 容器映像檔,以及公有雲上按量計費的 RHEL 執行個體。任何取得這些二進位檔的人,皆擁有取得對應原始碼的 GPL 權利。Rocky Linux 維持其追蹤 RHEL 每個發行版本的目標。
AlmaLinux 的回應則有所不同。在 2023 年 7 月,由 benny Vasquez 主持的董事會放棄了與 RHEL 一對一對應的目標,轉而採用應用程式二進位介面 (ABI) 相容性。ABI 相容性意味著為 RHEL 建構的軟體可在 AlmaLinux 上直接執行,無需修改,但兩者不再是完全相同的建構版本。這項調整換來了靈活性。AlmaLinux 可以在 RHEL 發布修復程式前先行釋出,並能持續支援已被 RHEL 捨棄的硬體。
兩家大型供應商也採取了行動。2023 年 7 月 11 日,SUSE 表示將分叉 (fork) 公開可用的 RHEL,並投入超過一千萬美元開發相容的發行版。自 2006 年起便以 RHEL 相容產品形式發布 Oracle Linux 的 Oracle,也在同一週發布了回應。
2023 年 8 月 10 日,CIQ、Oracle 與 SUSE 共同宣布成立 Open Enterprise Linux Association (OpenELA)。這是一個貿易協會,其任務只有一項:發布企業級 Linux 原始碼,確保 RHEL 相容的發行版能持續建構,並維持這些原始碼可自由散布。2023 年 11 月,該協會宣布了治理文件並開放程式碼存取。AlmaLinux 並未加入,這與其採用的 ABI 決策一致,因為它已不再需要完全精確的原始碼來源。
現今伺服器應選擇哪一個版本?
The data behind this chart
[
{
"distro": "RHEL 10",
"support_window": 10,
"notes": "Released May 2025, supported to May 2035"
},
{
"distro": "AlmaLinux 10",
"support_window": 10,
"notes": "Released May 2025, supported to May 2035"
},
{
"distro": "Rocky Linux 10",
"support_window": 10,
"notes": "Released June 2025, supported to May 2035"
},
{
"distro": "CentOS Stream 10",
"support_window": 5,
"notes": "Released December 2024, supported to May 2030"
}
]版本 10 的發布標誌著當前的發展現況。RHEL 10 於 2025 年 5 月 20 日發布,AlmaLinux 10 "Purple Lion" 於 2025 年 5 月 27 日發布,而 Rocky Linux 10 "Red Quartz" 則於 2025 年 6 月 11 日發布。上述每個版本均提供 10 年的支援週期。CentOS Stream 10 則提供 5 年的支援,這明確顯示其為開發分支,而非凍結的穩定目標。
這些專案在實務操作上已出現差異。RHEL 10 將硬體基準提升至 x86-64-v3,此微架構層級要求 CPU 支援 AVX2 等較新的指令集。Rocky Linux 10 跟進此基準並放棄對 x86-64-v2 的支援。AlmaLinux 10 預設採用 x86-64-v3,但針對舊款處理器另外提供 x86-64-v2 的建置版本。若您在運行舊款 CPU 的廉價 VPS 上部署,此決策將直接決定系統是否能安裝。
針對此時間軸的四項實務建議:
- 若您需要廠商關係,請購買 RHEL。訂閱服務本身即是產品,並包含任何重製版(rebuild)無法提供的認證與技術支援管道。
- 若您追求過去 CentOS Linux 提供的體驗,AlmaLinux 與 Rocky Linux 皆能免費提供,且具備 10 年的支援週期。
- 若您開發的軟體必須在 RHEL 上執行,或希望貢獻的修補程式能被納入,CentOS Stream 是正確的目標,而較短的支援週期則是其代價。
- 若上述皆不適用,Debian 生態系以其特有方式解決了相同的生命週期問題,而 Ubuntu LTS 與過渡版本之間的選擇 則是您在該領域會面臨的決策。
此時間軸背後的教訓在於治理而非程式碼本身。CentOS Linux 雖是優秀的軟體,卻仍提早終止,原因在於其資金來源為被其複製產品的母公司。當您為預計運行十年的機器選擇發行版時,請確認其資金來源與商標所有權。AlmaLinux 將商標交由基金會管理;Rocky Linux 則由 RESF 持有,並由 CIQ 作為商業贊助商。這兩個專案皆公開了這些資訊,這已比 2019 年的 CentOS 使用者所能確認的內容更為透明。
若您租用伺服器,這將直接影響您的維運。在 非託管型 VPS 上,您需自行執行更新,因此生命週期提前結束意味著您必須規劃遷移並投入相應時間。若作業系統的選擇問題尚未定案,則 Linux 與 Windows Server 的比較 將是您優先需要考量的課題。
FAQ
CentOS 已經終止了嗎?
CentOS Linux 已停止維護。CentOS Linux 8 已於 2021 年 12 月 31 日結束支援,CentOS Linux 7 則於 2024 年 6 月 30 日結束,兩者皆不再提供安全性更新。CentOS Project 本身持續運作並發布 CentOS Stream,這是一款不同的產品:它是作為 Red Hat Enterprise Linux 上游的公開開發分支。若伺服器仍執行 CentOS Linux,則代表系統缺乏修補,常見的遷移目標為 AlmaLinux 與 Rocky Linux。
CentOS Stream 與 CentOS Linux 有何不同?
在於開發方向。CentOS Linux 是下游版本:Red Hat 發布 RHEL 次要版本後,CentOS 再進行重建。CentOS Stream 是上游版本:它是組建下一個 RHEL 次要版本的基礎,因此其內容會先於 RHEL 到達。Stream 採取持續更新而非凍結版本,且 CentOS Stream 10 的支援週期約為 5 年,相較於 RHEL 的 10 年較短。
我該選擇 Rocky Linux 還是 AlmaLinux?
兩者皆為免費、緊密追隨 RHEL,且皆提供 10 年支援週期,因此對大多數伺服器而言皆適用。實際差異源於兩者在 2023 年的決策。Rocky 旨在與 RHEL 版本完全對應,透過 UBI 容器映像檔與公有雲執行個體取得原始碼進行重建。AlmaLinux 則追求 ABI 相容性,這使其能更早發布修補程式,並保留 RHEL 已移除的硬體支援。AlmaLinux 10 提供適用於舊款 CPU 的 x86-64-v2 組建,而 Rocky Linux 10 要求 x86-64-v3,在舊硬體上此細節可能成為決策關鍵。
Red Hat 在 2023 年違反了 GPL 嗎?
目前無法院判決如此認定,且 GPL 的義務對象為接收二進位檔案的使用者。Red Hat 仍向其客戶提供對應的原始碼。爭議點在於後續行為:訂閱服務可能被拒絕續約,重建專案將此視為對授權條款賦予之再散布權利的施壓。這也是為何 Rocky 轉向不附帶訂閱協議的原始碼來源,以及 OpenELA 成立以公開發布原始碼的原因。
Red Hat 為何要終止 CentOS Linux?
根據 2020 年 12 月 8 日的公告,官方理由是專案的未來在於 CentOS Stream,且僅複製 RHEL 的重建版本無法讓社群參與影響力。許多使用者認為此舉亦有商業動機,因為 CentOS Linux 是 Red Hat 付費產品的免費版本,且被許多有能力負擔訂閱費的組織用於生產環境。Red Hat 的官方文章則聚焦於開發模式,而非上述解讀。