CentOS Stream
CentOS 曾是企业 Linux 世界中最受欢迎的免费 RHEL 替代品。2020 年底,Red Hat 宣布将传统 CentOS Linux 转为 CentOS Stream,引发了整个社区的巨大变革。理解这段历史和 CentOS Stream 的新定位,对每一个 EL 用户都至关重要。
CentOS 的历史
Section titled “CentOS 的历史”传统 CentOS(2004-2021)
Section titled “传统 CentOS(2004-2021)”CentOS(Community Enterprise Operating System)最初是一个独立的社区项目,目标是从 RHEL 的公开源代码中重新编译出一个与 RHEL 二进制兼容的免费发行版。
核心理念:去掉 Red Hat 商标,重新编译 RHEL 源码包(SRPM),提供完全兼容的免费替代品。
这一模式使得 CentOS 在以下场景中广受欢迎:
- 预算有限的中小企业
- Web 托管和服务器托管
- 开发和测试环境
- 教育和科研机构
Red Hat 收购 CentOS 项目(2014)
Section titled “Red Hat 收购 CentOS 项目(2014)”2014 年,Red Hat 将 CentOS 项目纳入旗下。CentOS 团队加入 Red Hat,项目获得了更多资源,但也为后来的转型埋下了伏笔。
这一阶段 CentOS 仍然保持原有模式——作为 RHEL 的下游重编译版本发布。
CentOS Stream 转型(2020-2021)
Section titled “CentOS Stream 转型(2020-2021)”2020 年 12 月,Red Hat 宣布:
- CentOS Linux 8 将于 2021 年底 EOL(原计划支持到 2029 年)
- CentOS Linux 7 按原计划于 2024 年 6 月 EOL
- 未来 CentOS 项目将聚焦于 CentOS Stream
这一决定引发了巨大的社区反响,并直接催生了 AlmaLinux 和 Rocky Linux 两大 RHEL 兼容发行版。
什么是 CentOS Stream
Section titled “什么是 CentOS Stream”CentOS Stream 是 RHEL 的持续交付上游。它的定位发生了根本性变化:
传统模式:Fedora → RHEL → CentOS(下游重编译)新模式: Fedora → CentOS Stream → RHEL(中游开发)与传统 CentOS 的核心区别
Section titled “与传统 CentOS 的核心区别”| 特性 | 传统 CentOS | CentOS Stream |
|---|---|---|
| 与 RHEL 的关系 | RHEL 的下游(跟随) | RHEL 的上游(领先) |
| 更新频率 | 跟随 RHEL 小版本发布 | 持续滚动更新 |
| 软件包版本 | 与 RHEL 完全相同 | 略领先于当前 RHEL 小版本 |
| 稳定性 | 等同于 RHEL | 略低于 RHEL 正式版,但高于 Fedora |
| 定位 | 免费的 RHEL 替代品 | RHEL 开发的公开协作平台 |
CentOS Stream 的更新模型
Section titled “CentOS Stream 的更新模型”CentOS Stream 在一个大版本内进行滚动更新。以 CentOS Stream 9 为例:
- 它包含即将进入下一个 RHEL 9.x 小版本的变更
- 更新是连续的,不会有”9.1”或”9.2”这样的小版本号
- 每次更新都经过 CI 测试,但未经 RHEL 正式版那样的完整 QA 流程
实际上,CentOS Stream 的更新内容与下一个 RHEL 小版本之间的差距通常很小。对于大多数工作负载而言,CentOS Stream 的稳定性是足够的。
适合使用 CentOS Stream 的场景
Section titled “适合使用 CentOS Stream 的场景”-
开发和测试环境
- 提前测试即将进入 RHEL 的变更
- 确保你的应用与即将发布的 RHEL 兼容
-
向 RHEL 贡献
- CentOS Stream 是向 RHEL 提交 Bug 修复和改进的公开渠道
- 任何人都可以通过 CentOS Stream 参与 RHEL 的开发
-
CI/CD 管道
- 在 CI 中使用 CentOS Stream 进行构建和测试
- 提前发现潜在的兼容性问题
-
非关键生产环境
- 对于不要求严格 RHEL 兼容性的内部服务
- Web 开发和应用部署
不太适合的场景
Section titled “不太适合的场景”- 需要与 RHEL 100% 二进制兼容的生产环境
- 需要长期不变的固定软件包版本
- 运行经过 RHEL 认证的商业软件
获取 CentOS Stream
Section titled “获取 CentOS Stream”下载地址:www.centos.org/centos-stream/
当前可用版本:
- CentOS Stream 9:活跃开发中(对应 RHEL 9.x)
- CentOS Stream 10:活跃开发中(对应 RHEL 10.x)
# 查看版本信息cat /etc/centos-release
# 更新系统dnf update -y
# 查看可用仓库dnf repolist
# 安装 EPEL(Extra Packages for Enterprise Linux)dnf install -y epel-releaseCentOS Stream 的软件仓库与 RHEL 对应:
| 仓库 | 说明 |
|---|---|
| baseos | 核心操作系统包 |
| appstream | 应用程序和运行时 |
| crb | CodeReady Builder 等效仓库 |
| extras-common | 额外的社区工具 |
SIG(Special Interest Groups)
Section titled “SIG(Special Interest Groups)”CentOS 项目的重要组成部分是各个 SIG,它们围绕特定主题提供额外的软件包和基础设施:
| SIG | 关注领域 |
|---|---|
| Cloud | 云基础设施(OpenStack 等) |
| Virtualization | 虚拟化技术(KVM、oVirt 等) |
| Storage | 分布式存储(Ceph、GlusterFS 等) |
| NFV | 网络功能虚拟化 |
| Automotive | 车载 Linux |
| Hyperscale | 超大规模基础设施优化 |
| Kmods | 内核模块 |
SIG 提供的软件包通过专用仓库分发,可以按需启用:
# 示例:查看可用的 CentOS SIG 仓库dnf repolist --all | grep -i sig从传统 CentOS 迁移
Section titled “从传统 CentOS 迁移”如果你仍在运行传统 CentOS Linux,以下是迁移路径:
CentOS Linux 7(已 EOL)
Section titled “CentOS Linux 7(已 EOL)”- 使用 AlmaLinux 的 ELevate 工具升级到 EL 8/9
- 全新安装 CentOS Stream 9 或其他 EL 9 发行版
CentOS Linux 8(已 EOL)
Section titled “CentOS Linux 8(已 EOL)”CentOS Stream 8 也已于 2024-05-31 EOL,不要再迁往该版本。推荐路径:
- 原地迁移到 AlmaLinux 8 或 Rocky Linux 8(仍在维护支持期)
- 直接升级到 EL 9 / EL 10
CentOS Stream 的源码与构建
Section titled “CentOS Stream 的源码与构建”CentOS Stream 的所有源代码通过 GitLab 公开:
- 源码仓库:gitlab.com/redhat/centos-stream
- 构建系统:使用 Koji
这是查看 RHEL 即将包含哪些变更的最佳途径,也是所有 RHEL 兼容发行版获取源代码的主要来源(自 2023 年 Red Hat 限制 SRPM 访问后)。
CentOS Stream 不再是”免费的 RHEL”,而是”RHEL 的开发前沿”。对于需要免费 RHEL 兼容发行版的用户,AlmaLinux 和 Rocky Linux 是更直接的选择。但 CentOS Stream 在开发、测试、以及参与 RHEL 生态方面仍然扮演着重要角色。
理解 CentOS Stream 的定位,有助于你在众多 EL 发行版中做出正确的选择。
- EL 11 前瞻 — CentOS Stream 11 分支时间预测与 RHEL 11 规划动态