CentOS 和 Red Hat Enterprise Linux(截至 2017 年)之间当前有何区别?
当您开发针对 Red Hat 的软件时,用户和支持人员不可避免地会问为什么他们不能直接使用 CentOS,因为“CentOS 与 Red Hat 相同”。
我经常发现自己不得不解释使用其中一种或另一种的成本与收益,因为“免费”并不意味着某处没有成本。有人必须支付存在显着差异的风险的成本。
我们可以指出哪些实际差异来解释这种差异?
它们在作为开发平台的目标方面有何不同?
CentOS 和 Red Hat 有何不同的问题由来已久。不过,我认为2017年有些事情可能和以前有所不同。
我已将自己的答案添加为社区维基。如果您可以改进,请参与。
答案1
您支持的每个平台都会产生相关成本。通常您需要:
- 构建环境
- 单独的测试环境(例如没有安装开发工具)
- 额外的时间来构建和测试新版本
- 支持每个平台的额外资源
CentOS 的目标是与 Red Hat 进行二进制兼容,从而减少对单独构建环境的需求。但是,如果您无法访问 CentOS 环境(至少无法进行测试),您可能会被细微的差异所困扰。理论上,您可能无法在 Red Hat 安装上重现用户安装 CentOS 时出现的问题。
由于存储库组织不同,您可能还必须为依赖项提供不同的安装说明。
存储库组织
从 RHEL 7 开始,Red Hat 已将内容拆分为更多存储库:
- 原子主机
- 服务器
- 工作站
- 上述的可选变体
- 上述内容的补充回购
- 上述内容的 beta 存储库
事实上我数了一下不少于85个(如下):
>yum repolist all | grep rhel | wc -l
85
CentOS 7 似乎不是这种情况(如果我错了,请纠正我)
此外,一个 RHEL 存储库中可用的内容与其他一些存储库不兼容。例如,atomichost 中的 docker 在我的工作站安装上运行不佳。
爪哇
这个帖子 from 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)生命周期结束以来,有几个影响 RHEL 5 的关键 CVE。
也可以看看CentOS 和 RHEL 完全一样吗?
码头工人
随着 Docker 的兴起,我们新的差异:
Red Hat Enterprise Linux 不支持 Docker 社区版 (Docker CE)。
您必须购买 Docker EE 许可证。您可以使用 CentOS 存储库在 RHEL 上安装 Docker-CE。看在 RHEL7 上安装 Docker CE 17.03
但这显然是不受支持的配置。
这是一个奇怪的决定,因为该决定是由 Docker 团队而不是红帽做出的。那么如果 Red Hat 愿意的话,他们可能会决定支持 Docker CE 吗?
它们之间的本质区别还是一样的:
如果您需要商业支持和认证,您需要付费(使用 Red Hat),如果您不想要,您可以使用 CentOS。
方向
红帽和 CentOS 项目正在构建一个新的 CentOS,能够推动下一代开源项目的开发和采用。
这是公司的宣传语,但它可以被视为意味着红帽希望 RHEL 以某种有趣但未具体说明的方式与 CentOS 分离开来。
更新日期:2020 年 12 月
CentOS 的方向现在更加清晰:
- CentOS 8 将提前结束生命周期(2021 年)。
- CentOS 7 支持将持续到 2024 年。
- RedHat(现为 IBM 所有)将不再提供与 RHEL 竞争的 CentOS。
- 他们现在有“CentOS Stream”,它是 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 流适合什么地方呢?解释一下差异林文说:
“如果发行版是木制家具,那么 RHEL 将是一张成品桌子,Stream 将是未上漆且未打磨的桌子,而 Fedora 将是树。”
对分裂的进一步解释和更积极的解释如下:
为了填补 CentOS 的空白,一些原始 CentOS 团队正在创建 Rocky Linux -https://github.com/rocky-linux/rocky 红帽之外。
还有一些其他值得注意的项目已经独立于 CentOS 存在,特别是阿尔玛Linux 填补了类似的空白。
另一个区别是如何开发工具集已安装:
yum install centos-release-scl
如果不进行更改,这在 RHEL 上显然没有意义。实际上要痛苦得多。您必须提出特殊请求并附上特殊的附加订阅。看https://stackoverflow.com/a/72002572/1569204 这是不收费的(但是很不方便)。