寫在前面 筆者不才,過去一年中一半的時間在準備考研,博客園無心打理,顯得荒蕪了。到如今臨近畢業,找的工作實事求是的講也只是專業相關,並不完全對口,估計一段時間之內都沒法親自做開發了。雖然去的也是大公司,培養和各方面的保障都不錯,但是對於學了四年技術(慚愧地說學的不算精深)的筆者來說,畢業了做的不是技 ...
CentOS(Community Enterprise Operating System,社區企業操作系統)是由 Lance Davis 發起,通過社區驅動,目標是創建一個免費、開源的企業級操作系統。它根據 Red Hat Enterprise Linux(RHEL)開放源碼編譯而成,由於代碼相同,因此一些要求免費且高度穩定性的伺服器使用 CentOS 作為 Red Hat Enterprise Linux 的替代品。
2014 年,CentOS 宣佈與 Red Hat 合作,但 CentOS 將會在新的委員會下繼續運作,不受 RHEL 的影響。
2020 年 12 月 8 日,紅帽公司單方面終止了 CentOS 的開發。CentOS 的創始人 Gregory Kurtzer 創建了 Rocky Linux 項目,以繼承 CentOS 的原始目標。
一、使用情況
我們當前主要使用版本為:
CentOS 8:最新的穩定版本,發佈於 2019 年 9 月 24 日,原計劃的維護期限到 2029 年 5 月,但由於策略變更,實際的維護期限提前到了 2021 年 12 月 31 日。
CentOS 7:發佈於 2014 年 7 月 7 日,是目前應用最廣泛的版本,維護期限到 2024 年 6 月 30 日。
CentOS 6:發佈於 2011 年 7 月 10 日,維護期限到 2020 年 11 月 30 日。
二、官方公告
公告參考:CentOS Project shifts focus to CentOS Stream 和 FAQ。
重點說明:官方未來重心轉移到 CentOS Stream ,並將其作為 Red Hat Enterprise Linux 的上游(開發)分支。
三、個人看法
(1)CentOS Stream 將作為 RHEL 的測試版本,不具備穩定和可靠的特性。
(2)SIGs(CentOS Special Interest Groups)未來大概率會消亡。它只能按照官方的要求來維護及更新(參考 FAQ Q13),只能給 RHEL 做貢獻,RHEL 不再會回饋它 CentOS。
(3)不建議使用 CentOS Stream。
四、對替代系統的要求
(1)開源免費
(2)好用、穩定和可靠
(3)官方、社區支持及生態好
(4)最好能相容 CentOS
五、可替代的系統
根據我們對替代系統的要求及是否相容 CentOS,我們做瞭如下兩類替代方案:
1. 相容 CentOS 的 OS
操作系統 | 簡介 | 下載量 |
---|---|---|
Rocky Linux | Rocky Linux 是一個社區化的企業級操作系統,位於 Red Hat Enterprise Linux(RHEL)下游。Rocky Linux 與 CentOS 一樣,提供了適用於伺服器的穩定版本,旨在作為 CentOS 的完全相容替代版本。 | 1000 萬 |
AlmaLinux | AlmaLinux 是 CloudLinux 團隊宣佈構建的一個穩定版 CentOS 社區分支。該操作系統實現了與 Red Hat Enterprise Linux(RHEL)二進位文件的 1:1 相容,並提供了不停機更換操作系統的能力。 | 500 萬 |
Alibaba Cloud Linux | Alibaba Cloud Linux 由阿裡雲官方提供,完全相容 RHEL/CentOS 生態和操作方式。該操作系統針對阿裡雲做了大量優化,並由阿裡雲免費提供長期支持和維護(LTS)。 | 175 萬 |
2. 其他不相容 CentOS 的 OS
操作系統 | 簡介 | 下載量 |
---|---|---|
Ubuntu | Ubuntu 是由 Canonical 開發的 Linux 發行版,用戶可以基於 Ubuntu 安裝圖形化桌面,以便於使用。 | 10 億 |
Debian | Debian 是一個流行的 Linux 操作系統,以其穩定性、安全性和自由軟體原則而聞名。 | 10 億 |
OpenSUSE | OpenSUSE 是一個基於 Linux 內核的操作系統,由 OpenSUSE 項目社區開發維護,並且得到了 SUSE 等公司的贊助。 | 1000 萬 |
六、Ubuntu VS Debian
1. Ubuntu
(1)特點
-
Ubuntu 通常會基於 Debian 不穩定分支來開發,它的目標是為了實現一個對用戶友好的操作系統。
-
Ubuntu 有定期的發行版本,每六個月就會有一個新版本,每兩年會有一個長期支持(LTS)版本,LTS 提供五年支持。
-
Ubuntu 對硬體的支持比較全面,包括各種筆記本電腦和台式機。
-
Ubuntu 有一個強大的社區支持,有很多的教程和指南。
(2)優點
-
安裝簡單,對新手友好。
-
有大量的軟體包可供選擇。
-
系統更新及時,安全性較高。
-
社區活躍,遇到問題容易找到解決方案。
(3)缺點
-
系統占用資源相對較多,不適合老舊機器。
-
版本更新頻繁,有些用戶可能不喜歡頻繁的更新。
2. Debian
(1)特點
-
Debian 是一個自由的操作系統,它的主要構成是多種預編譯軟體,這些軟體以一種易於管理的格式打包。
-
Debian 有一個嚴格的政策,對軟體的質量有高要求。
-
Debian 支持多種電腦架構。
-
Debian 有一個大型的社區,有很多志願者參與開發。
-
主要穩定版本大約每兩年發佈一次,提供五年支持。
(2)優點
-
系統穩定,適合伺服器環境。
-
軟體包管理系統強大,易於管理和維護。
-
社區活躍,有很多高質量的文檔和教程。
(3)缺點
-
對新手不太友好,配置和安裝比較複雜。
-
對硬體的支持不如 Ubuntu 全面。
-
軟體包更新不及 Ubuntu 及時,有些軟體可能不是最新版本。
3. 個人看法
(1)如果你是 Linux 新手,或者需要廣泛的硬體支持和易於使用的系統,Ubuntu 可能是更好的選擇,Ubuntu 的 LTS 版本適合作為長期穩定的企業級伺服器的操作系統。
(2)如果你是一位經驗豐富的 Linux 用戶,需要高度定製的伺服器或者對穩定性有極高要求,Debian 可能更適合你,Debian 穩定版的軟體雖然不是最新的,但經過了嚴格的測試,非常適合關鍵任務的伺服器環境。
(3)無論是 Ubuntu 還是 Debian,內置功能都較少,Debian 預設甚至不支持 top 命令,兩者都需要經過二次定製,才能用於生產環境。
七、不得不說 Alpine
在構建 Docker 鏡像時,雖然 Alpine 的體積小、啟動速度快等特性很吸引人,但是以下原因可能使得它並不適合廣泛使用:
-
相容性問題:Alpine Linux 使用的是 musl libc 而不是大多數 Linux 發行版使用的 glibc。這可能會導致一些依賴於 glibc 的應用在 Alpine 上運行出錯。
-
軟體包:Alpine 的軟體庫相對較小,一些常見的軟體包可能無法找到。
-
調試和故障排查:由於 Alpine 的體積小,很多常見的調試工具可能並未預裝,這可能會在需要調試或故障排查時帶來不便。
-
文檔和社區支持:相比於其他主流的 Linux 發行版,Alpine 的文檔和社區支持相對較弱,這可能會在解決問題時增加難度。
-
網路問題:Alpine 使用的網路工具是 BusyBox 提供的,一些網路功能可能無法正常使用。
個人看法:Docker 本身內置分層緩存機制,並且可以在編譯機上進行二次緩存,在實際企業 CI/CD 環境中,即使我們使用了體積較大的系統鏡像,打包編譯時也僅是第一次較慢,且由於所處內網環境,通常使用光纖網路,鏡像下載很快,實際對編譯進度影響更小。而由於 Alpine 本身的不足,不僅可能影響線上業務的穩定,甚至可能影響到線上問題定位或故障分析。個人認為 Alpine 不適合作為實際生產環境的鏡像系統。
八、個人建議
(1)非必要不更新(替代)CentOS。
(2)首選 Rocky Linux 作為相容 CentOS 的 OS,社區相對較好,用戶體量也相對較大。
(3)相比 Debian,Ubuntu 更為流行和易用,更適合作為面向普通研發人員的 Docker 容器鏡像;相比 Ubuntu,Debian 更穩定可靠,更適合面向專業運維人員的伺服器系統。
九、參考文章
(1) CentOS Project shifts focus to CentOS Stream
(2) FAQ - CentOS Project shifts focus to CentOS Stream
(4) 從 CentOS 8 到 CentOS Stream 到底發生什麼事了?
(5) 亞馬遜雲科技上在 CentOS 在停止維護後的幾種選擇
(6) What are the pros and cons of Debian and Ubuntu for server usage?