CentOS 和 Red Hat Enterprise Linux 目前有什麼區別?
CentOS 和 Red Hat Enterprise Linux(截至 2017 年)目前有什麼區別?
當您開發針對 Red Hat 的軟體時,使用者和支持人員不可避免地會問他們為什麼不能直接使用 CentOS,因為“CentOS 與 Red Hat 是一樣的”。
我經常發現自己不得不將使用其中一種或另一種的成本與收益解釋為“免費”並不意味著某處沒有成本。有人必須支付承擔重大差異風險的費用。
我們可以指出哪些實際差異來解釋差異?
在將它們定位為開發平台方面,它們有何不同?
CentOS 和 Red Hat 有何不同的問題由來已久。但是,我認為 2017 年的某些事情可能與之前有所不同。
我已將自己的答案添加為社區 wiki。如果您可以改進它,請加入。
您支持的每個平台都有相關的成本。通常您需要:
- 建構環境
- 單獨的測試環境(例如,未安裝開發工具)
- 額外的時間來建構和測試新版本
- 支持每個平台的額外資源
CentOS 旨在與 Red Hat 二進制兼容,從而減少對單獨建構環境的需求。但是,如果您也無法訪問 CentOS 環境,至少對於測試而言,您可能會被細微的差異所吸引。從理論上講,您可能無法在 Red Hat 安裝上重現使用者安裝 CentOS 時出現的問題。
由於儲存庫組織不同,您可能還必須為依賴項提供不同的安裝說明。
儲存庫組織
從 RHEL 7 開始,Red Hat 已將內容拆分為更多儲存庫:
- 原子宿主
- 伺服器
- 工作站
- 上述的可選變體
- 以上的補充回購
- 上述的測試版回購
其實我數不下85(如下):
>yum repolist all | grep rhel | wc -l 85
CentOS 7 似乎不是這種情況(如果我錯了,請糾正我)
此外,一個 RHEL 儲存庫中可用的東西與其他一些不兼容。例如,來自 atomichost 的 docker 在我的工作站安裝中無法正常執行。
爪哇
2016 年的這篇文章 提到(Oracle)Java 不能直接安裝在 CentOS 上:
Red Hat 與 Oracle 簽訂了重新分發 Oracle Java SE 二進製文件(包括 JDK 和 JRE)的契約,並支持這些產品作為 RHEL 訂閱的一部分。CentOS 不提供 Oracle Java SE;希望使用 Oracle Java SE 的 CentOS 使用者必須直接從 Oracle 下載並安裝它。
安全更新檔
- Red Hat 發布修復後,CentOS 需要多長時間才能發布修復?
我們的目標是在鏡像發布後 72 小時內在鏡像上提供單獨的 RPM 包,通常它們在 24 小時內可用。有時,由於各種原因,包裹會延遲。在極少數情況下,可能會建構包並將其推送到鏡像,但不能通過 yum 獲得。(這是因為 yum-arch 尚未在主鏡像上執行。這可能發生在上游軟體包發布後不久發現問題,並且如果發佈軟體包會破壞其功能。)
紅帽為舊版本提供延長的生命週期支持(需額外付費)。這意味著您可以獲得針對 RHEL 5 的關鍵 CVE 的更新檔,而 CentOS 可以簡單地將 CentOS 5 註銷為不再受支持。值得注意的是,自從 RHEL 5(和 CentOS 5)生命週期結束以來,已經有幾個關鍵的 CVE 影響了它。
碼頭工人
隨著 Docker 的興起,我們有了一個新的不同:
Red Hat Enterprise Linux 不支持 Docker 社區版 (Docker CE)。
您必須改為購買 Docker EE 許可證。您可以使用 CentOS 儲存庫在 RHEL 上安裝 Docker-CE。請參閱在 RHEL7 上安裝 Docker CE 17.03
但這顯然是不受支持的配置。
這是一個奇怪的決定,因為這個決定是由 Docker 團隊而不是 Red Hat 做出的。因此,如果 Red Hat 願意,他們可能會決定支持 Docker CE 嗎?
它們之間的本質區別還是一樣的:
如果您想要商業支持和認證,您需要付費(使用 Red Hat) 如果您不想要,您可以使用 CentOS。
方向
Red Hat 和 CentOS 項目正在建構一個新的 CentOS,能夠推動下一代開源項目的開發和採用。
這是企業宣傳,但它可以被視為意味著 Red Hat 希望 RHEL 以某種有趣但未指定的方式從 CentOS 中分離出來。
更新:2020 年 12 月
CentOS 的方向現在更清晰了:
- CentOS 8 將提前(2021 年)結束生命週期。
- CentOS 7 支持將持續到 2024 年。
- RedHat(現在歸 IBM 所有)將不再提供與 RHEL 競爭的 CentOS。
- 他們現在有“CentOS 流”,它位於 RedHat 的上游,有點像測試版。
最好的總結可能是 - https://hackaday.com/2020/12/09/centos-is-dead-long-live-centos/
也可以看看:
- https://blog.centos.org/2020/12/future-is-centos-stream/ - 特別注意使用者評論
- https://wiki.centos.org/About/Product
- https://endoflife.date/centos
- https://www.techrepublic.com/article/why-the-shift-from-centos-to-centos-stream-is-a-big-mistake/
眼尖的人可能會注意到 Fedora 是 RedHat 的上游版本。那麼 CentOS 流適合哪裡呢?為了解釋差異lwn說:
“如果發行版是木製家具,那麼 RHEL 將是一張完成的桌子,Stream 將是未上漆和未打磨的桌子,而 Fedora 將是樹。”
對拆分的進一步解釋和更積極的解釋如下:
- https://fedoramagazine.org/fedora-and-centos-stream/
- 為了填補 CentOS 用來填補一些原始 CentOS 團隊的利基,他們正在創建 Rocky Linux - https://github.com/rocky-linux/rocky 在 RedHat 之外。
- 還有一些其他值得注意的項目已經獨立於 CentOS 存在,特別是AlmaLinux ,它們填補了類似的利基市場。
另一個區別是devtoolset 的安裝方式:
yum install centos-release-scl
如果不進行更改,這在 RHEL 上顯然是沒有意義的。它實際上要痛苦得多。您必須提出特殊要求並附上特殊的附加訂閱。請參閱https://stackoverflow.com/a/72002572/1569204 這是不收費的(但它很不方便)。