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 万 |
下载量引自 dockerhub 或 阿里云镜像仓库,下同。
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 更稳定可靠,更适合面向专业运维人员的服务器系统。
九、参考文章
-
CentOS Project shifts focus to CentOS Stream
-
FAQ - CentOS Project shifts focus to CentOS Stream
-
阿里云 CentOS EOL 应对方案
-
从 CentOS 8 到 CentOS Stream 到底发生什么事了?
-
亚马逊云科技上在 CentOS 在停止维护后的几种选择
-
What are the pros and cons of Debian and Ubuntu for server usage?