揭秘CentOS Stream:从介绍到入门的全面指南
引言:一场变革的浪潮
对于许多Linux用户,尤其是企业级应用的部署者和维护者来说,CentOS是一个熟悉且可靠的名字。它长期以来作为Red Hat Enterprise Linux (RHEL) 的下游(Downstream)免费版本,因其高度的兼容性、稳定性和企业级的特性而广受欢迎。然而,2020年底,CentOS项目宣布了一项重大变革:停止维护传统的CentOS Linux,并转向名为CentOS Stream的新发行版。这一变动在社区引发了广泛讨论,有人感到不安,也有人看到了新的机遇。
本文旨在全面介绍CentOS Stream,解释它在Red Hat生态系统中的定位,探讨它的优势与挑战,并提供一个详细的入门指南,帮助读者理解、安装和初步使用CentOS Stream,以便更好地应对这一变化,或者评估它是否适合您的需求。
第一部分:理解CentOS Stream——它是什么?为什么选择它?
1. CentOS Stream 的定义与定位
与传统的CentOS Linux(它是RHEL发布后,去掉商业特性并重新编译的下游版本)不同,CentOS Stream是一个上游(Upstream)的发行版。更准确地说,它是RHEL的“滚动预览”或“开发分支”。
想象一下软件开发的流程:
- Fedora: 处于最上游,是一个快速迭代、包含最新技术和软件包的社区发行版。很多新特性首先在Fedora中孵化和测试。
- CentOS Stream: 位于Fedora下游,但在RHEL的开发流程中处于上游位置。它包含了即将进入下一个RHEL小版本或大版本的功能和补丁。开发者和社区可以在RHEL正式发布之前,在这里看到、测试并贡献代码。
- RHEL: 处于CentOS Stream的下游。Red Hat从CentOS Stream获取经过一定测试和稳定的代码,进行进一步的企业级加固、测试和认证,然后作为正式的RHEL版本发布。
- 传统的CentOS Linux (已停产): 位于RHEL的下游。它是在RHEL发布后,将RHEL的源代码进行重新构建而成的。
关键区别:
- CentOS Linux (旧): RHEL 发布 后 的结果。相对固定和稳定。
- CentOS Stream: RHEL 发布 前 的一部分。是一个持续更新的、更接近RHEL开发前沿的版本。
您可以将CentOS Stream理解为一个连接 Fedora 的创新与 RHEL 的企业级稳定性之间的桥梁。它不是一个“最终产品”的免费版本,而是一个“正在开发中”的RHEL版本。
2. 为什么Red Hat要转向CentOS Stream?
停止维护广受欢迎的CentOS Linux并推广CentOS Stream,这一决策背后有Red Hat的战略考量:
- 加速创新与反馈循环: 传统的模式下,RHEL发布后,CentOS社区才开始构建。这意味着社区反馈和测试通常发生在RHEL版本周期后期,对当前版本的RHEL影响有限。通过CentOS Stream,Red Hat可以在RHEL发布之前就获得大量的社区反馈、错误报告和功能测试,从而更快地发现和修复问题,加速RHEL的开发进程。
- 提高透明度: CentOS Stream让社区更早地看到即将进入RHEL的代码变化,增加了RHEL开发过程的透明度。
- 促进社区参与: 社区成员不仅可以测试即将发布的RHEL内容,还可以直接向CentOS Stream贡献代码,影响RHEL的未来版本。这使得CentOS Stream成为一个更具活力和互动性的项目。
- 资源优化: 将资源集中到CentOS Stream这个单一的项目上,而不是同时维护下游的CentOS Linux,可以提高效率。
对于用户而言,这意味着:
- 如果你追求的是像传统CentOS Linux那样的、经过长时间验证的、极度稳定的快照版本,CentOS Stream可能不是直接的替代品。
- 如果你希望紧跟RHEL的开发步伐,能够提前体验新特性,愿意接受相对较低的稳定性(相比最终的RHEL版本),并且希望参与到企业级Linux的开发过程中,那么CentOS Stream是一个不错的选择。
第二部分:CentOS Stream 的优势与挑战
理解CentOS Stream的定位后,我们可以更客观地评估它的优缺点。
1. CentOS Stream 的优势 (Pros)
- 更早接触新特性和更新: 作为RHEL的上游,CentOS Stream包含了比RHEL当前稳定版本更新的软件包和功能。这对于开发者、测试人员以及需要使用较新技术的用户非常有吸引力。
- 影响RHEL的未来: 通过在CentOS Stream上测试、报告问题甚至贡献代码,用户可以直接参与并影响RHEL的开发方向和质量。这是一个从“使用者”转变为“贡献者”的机会。
- 更接近RHEL的开发前沿: 对于希望深入了解RHEL如何构建、测试以及未来可能走向何方的用户,CentOS Stream提供了宝贵的视角。它是一个学习和实验RHEL生态系统的绝佳平台。
- 适合开发和测试环境: 由于其“滚动预览”的特性,CentOS Stream非常适合用于构建开发、测试或staging环境。你可以在这里提前测试你的应用与即将发布的RHEL版本之间的兼容性。
- 免费使用: CentOS Stream与传统的CentOS Linux一样,是免费的社区发行版,无需支付订阅费用。
2. CentOS Stream 的挑战与限制 (Cons)
- 相对较低的稳定性(相较于RHEL稳定版本): CentOS Stream是一个开发中的版本,尽管Red Hat和社区会进行测试,但它不像正式发布的RHEL那样经过了严格的企业级质量保证和认证。它可能会包含一些尚未完全解决的Bug,更新也可能导致意想不到的问题。
- 更新频率更高,可能缺乏预测性: 作为“滚动”发行版,CentOS Stream的更新会持续进行。虽然这带来了新特性,但也意味着系统状态变化更快,可能不如传统的、基于快照的发行版那样容易预测和管理。
- 不适合作为对稳定性要求极高的生产环境基础(未加固或无额外支持): 对于那些要求极高稳定性和长期不变环境的关键生产系统,单纯使用CentOS Stream可能风险较高。因为它是一个开发分支,其主要目标是快速集成和测试新代码,而不是提供一个长期固定不变的、经过全面验证的平台。当然,有经验的用户可以通过额外的测试、监控和回滚策略来降低风险,但这需要更多的努力。
- 文档可能稍微滞后: 由于更新速度较快,针对特定版本的文档可能不会像RHEL那样详尽和及时更新。社区文档是重要的补充来源。
- 不是传统CentOS Linux的直接、无缝替代: 对于期望获得与CentOS Linux 7或8完全相同稳定性体验的用户,CentOS Stream的性质是不同的,需要调整期望和使用策略。
第三部分:CentOS Stream 适合谁?不适合谁?
基于上述的优劣势分析,我们可以更清晰地界定CentOS Stream的目标用户群体。
1. CentOS Stream 适合以下类型的用户:
- 开发者和测试人员: 需要在接近未来RHEL环境的平台上开发和测试他们的应用,以便提前发现兼容性问题。
- 希望了解RHEL开发流程和未来版本的用户: 对企业级Linux的内部运作感兴趣,希望学习RHEL生态系统。
- 社区贡献者: 希望参与到企业级Linux的开发、测试和错误报告中,为RHEL做出贡献。
- 非关键性服务器或内部服务: 如果你的服务器或服务对最新功能的需求高于对极度稳定性的要求,或者即使出现小问题也不会造成严重后果,CentOS Stream可以是一个选择。
- 构建实验或学习环境: 需要一个免费且接近RHEL的平台来学习企业级Linux技术。
- 作为向RHEL订阅迁移的准备: 如果未来计划使用RHEL订阅服务,CentOS Stream可以帮助你提前熟悉RHEL的软件包和环境。
2. CentOS Stream 不适合以下类型的用户:
- 需要最高级别稳定性和可预测性的关键生产环境: 比如运行核心业务应用、银行系统、医疗系统等对稳定性要求极高的场景,尤其是在没有额外企业级支持的情况下。
- 期望获得像CentOS Linux 7那样长期、固定、极少变化的快照版本: CentOS Stream是一个滚动更新的系统,其状态会持续变化。
- 不希望或没有资源投入到测试和潜在问题排查的用户: 由于是开发分支,可能偶尔会遇到问题,需要一定的技术能力和时间来处理。
- 寻求RHEL下游完全替代方案的用户: 传统的CentOS Linux是RHEL的下游二进制兼容版本,而CentOS Stream是RHEL的上游开发分支。如果你需要RHEL的下游版本,可以考虑如Rocky Linux或AlmaLinux等社区主导的、旨在提供1:1二进制兼容的发行版。
总而言之,CentOS Stream是一个非常有价值的项目,但它的价值体现在“开发”和“预览”上,而不是“最终发布”和“极致稳定”上。选择使用它之前,务必清楚它的定位和局限性。
第四部分:CentOS Stream 入门实践
本节将指导你如何获取、安装和进行CentOS Stream的基本配置。由于安装过程与传统的CentOS Linux或RHEL非常相似,我们将侧重于关键步骤和注意事项。
1. 获取 CentOS Stream 安装镜像
你可以从CentOS官方网站下载最新的CentOS Stream安装镜像(ISO文件)。
- 访问 CentOS 官网下载页面:https://www.centos.org/download/
- 选择你需要的架构,通常是
x86_64
。 - 选择 “CentOS Stream”。
- 你可以选择不同类型的镜像:
- DVD ISO: 包含基础系统和许多常用软件包,无需联网即可完成大部分安装。文件较大。
- Boot ISO (Minimal ISO): 只包含启动系统和安装程序,安装过程中需要联网下载大部分软件包。文件较小。
- Stream 8 或 Stream 9: 目前主要提供这两个主版本。Stream 9 是更近的版本,基于RHEL 9 系列开发;Stream 8 基于RHEL 8 系列开发。根据你的需求选择。对于新安装,推荐使用 Stream 9。
下载合适的ISO文件到你的本地计算机。
2. 创建启动介质
下载ISO后,你需要将其写入USB闪存驱动器或DVD,以便从其启动计算机进行安装。
- 使用USB驱动器 (推荐):
- 在Windows上,可以使用Rufus或Etcher等工具。
- 在macOS上,可以使用Etcher或
dd
命令。 - 在Linux上,可以使用Etcher或
dd
命令。例如:sudo dd if=/path/to/CentOS-Stream-*.iso of=/dev/sdX status=progress bs=4M
(请务必将/path/to/CentOS-Stream-*.iso
替换为你的ISO文件路径,/dev/sdX
替换为你的USB驱动器设备名称,务必小心不要选错设备)。
- 使用DVD: 使用刻录软件将ISO文件刻录到空白DVD上。
3. 开始安装 CentOS Stream
将创建好的启动介质插入目标计算机,并配置计算机从该介质启动(通常需要在BIOS/UEFI设置中调整启动顺序)。
- 启动安装程序: 从启动介质启动后,你会看到CentOS Stream的启动菜单。选择 “Install CentOS Stream”。
- 语言选择: 选择你喜欢的安装语言和键盘布局。点击 “Continue”。
-
安装概述 (Installation Summary): 这是安装过程中最重要的配置界面。你需要配置以下选项:
- Localization (本地化):
KEYBOARD
: 键盘布局。LANGUAGE SUPPORT
: 额外的语言支持。TIME & DATE
: 选择时区。
- Software (软件):
SOFTWARE SELECTION
: 选择安装的基础环境。对于服务器,通常选择 “Server” 或 “Minimal Install”。如果你需要桌面环境,可以选择 “Workstation” 或带有GUI的Server。注意: Minimal Install 会安装最少量的软件包,你需要手动安装所需的工具。INSTALLATION SOURCE
: 默认是本地介质。如果你使用Boot ISO,这里会提示需要联网获取软件源。
- System (系统):
INSTALLATION DESTINATION
: 分区设置。 这是关键步骤。你可以选择自动分区,也可以选择自定义分区。对于初学者或非关键系统,自动分区通常足够。对于服务器或需要精细控制,选择自定义分区,并建议至少创建/
(根目录),/home
,swap
分区。确保选择了正确的磁盘。NETWORK & HOST NAME
: 配置网络连接(静态IP或DHCP)和设置主机名。务必启用网络适配器,尤其如果你使用了Minimal ISO或需要在安装后立即访问网络。SECURITY POLICY
(可选): 配置系统安全策略。CONNECT TO RED HAT
(可选): 用于注册RHEL系统,CentOS Stream不需要此步骤。
- User Settings (用户设置):
ROOT PASSWORD
: 设置root用户的密码。务必设置一个强密码。USER CREATION
: 创建一个普通用户账号。建议创建一个普通用户进行日常操作,而不是直接使用root用户。
- Localization (本地化):
-
配置完成并开始安装: 完成所有必要的配置后(带有警告符号的项必须配置),点击右下角的 “Begin Installation” 按钮。
- 安装过程: 安装程序将开始复制文件和安装软件包。这个过程可能需要一些时间,具体取决于你选择的软件以及是否需要从网络下载。
- 安装完成: 安装完成后,点击 “Reboot System” 按钮重启计算机。记得移除安装介质。
4. 初步配置和基本使用
系统重启后,你会进入CentOS Stream的登录界面(取决于你是否安装了桌面环境)。
- 登录: 使用你在安装过程中创建的用户账号或root账号登录。
- 更新系统: 作为CentOS Stream,保持系统最新是非常重要的,因为它是一个滚动更新的发行版。打开终端,使用
dnf
命令更新系统:
bash
sudo dnf update -y
这个命令会下载并安装所有可用的更新。-y
选项会自动确认所有提示。 - 安装常用工具 (如果使用了Minimal Install): 如果你选择了Minimal Install,你可能需要手动安装一些常用工具,例如网络工具、编辑器等:
bash
sudo dnf install epel-release # 安装EPEL仓库 (可选但推荐,提供额外软件包)
sudo dnf install nano vim wget curl net-tools htop # 安装一些基本工具 - 网络配置验证: 确认网络连接正常。
bash
ip addr show # 查看IP地址
ping google.com # 测试网络连通性
如果网络不通,检查/etc/sysconfig/network-scripts/ifcfg-<你的网卡名称>
文件或使用nmtui
(NetworkManager Text User Interface) 工具进行配置。 - 防火墙配置: CentOS Stream默认启用firewalld。了解如何管理防火墙规则:
bash
sudo systemctl status firewalld # 查看防火墙状态
sudo firewall-cmd --list-all # 列出当前所有规则
sudo firewall-cmd --zone=public --add-service=ssh --permanent # 允许SSH服务 (如果你需要从远程连接)
sudo firewall-cmd --reload # 重新载入防火墙规则 - SSH服务 (远程连接): 对于服务器,通常需要启用SSH服务以便远程管理。SSH服务通常默认已安装并启动。确保防火墙允许SSH连接。
bash
sudo systemctl status sshd # 检查sshd服务状态
sudo systemctl enable sshd # 设置sshd开机自启
sudo systemctl start sshd # 立即启动sshd (如果未启动) - 探索
dnf
包管理器:dnf
是CentOS Stream主要的软件包管理器,它取代了yum
。学习一些常用的dnf
命令:
bash
sudo dnf search <软件包名称> # 搜索软件包
sudo dnf info <软件包名称> # 查看软件包信息
sudo dnf install <软件包名称> # 安装软件包
sudo dnf remove <软件包名称> # 卸载软件包
sudo dnf list installed # 列出已安装的软件包
sudo dnf list available # 列出可用的软件包
sudo dnf history # 查看软件包操作历史 - 查阅文档和社区资源: CentOS Stream的官方文档、CentOS Wiki、邮件列表、IRC/Matrix频道是获取帮助和了解最新信息的重要来源。
第五部分:CentOS Stream 与其他发行版的对比
为了更好地理解CentOS Stream,将其与一些相关的Linux发行版进行比较是很有帮助的。
1. CentOS Stream vs. 传统的 CentOS Linux (已停产)
- 定位: Stream 是 RHEL 的上游开发分支;传统 CentOS 是 RHEL 的下游稳定快照。
- 更新模式: Stream 是滚动更新;传统 CentOS 是基于 RHEL 小版本发布的快照,更新频率较低。
- 稳定性: Stream 相对不稳定(是预览);传统 CentOS 经过 RHEL 的完整 QA,非常稳定。
- 未来: Stream 是 CentOS 项目的未来;传统 CentOS 已经停止维护(CentOS 8 已EOL,CentOS 7 EOL于2024年)。
2. CentOS Stream vs. Red Hat Enterprise Linux (RHEL)
- 定位: Stream 是 RHEL 的上游;RHEL 是 Stream 的下游。
- 更新内容: Stream 包含的功能通常比当前 RHEL 版本新;RHEL 是经过全面测试、认证和企业级加固的版本。
- 稳定性与支持: RHEL 提供长期、稳定的版本和付费的企业级支持(包括补丁、安全更新、技术支持等);Stream 是社区驱动的,没有官方的企业级支持合同,稳定性相对较低。
- 目标用户: Stream 适合开发者、测试者、贡献者、非关键环境;RHEL 适合需要商业支持和最高级别稳定性的关键生产环境。
3. CentOS Stream vs. Fedora
- 定位: Fedora 是 RHEL 的最上游,是一个快速迭代、实验性强的社区发行版;Stream 是 RHEL 的上游,但位于 Fedora 和 RHEL 之间,专注于作为 RHEL 的开发分支。
- 更新频率: Fedora 通常比 Stream 更新更快,包含更前沿的技术和软件包。
- 稳定性: 两者都属于开发/测试性质,都不如 RHEL 稳定,但 Fedora 更具实验性。
- 用途: Fedora 更适合桌面用户、开发者以及那些想第一时间体验最新开源技术的人;Stream 更侧重于作为 RHEL 的开发和测试平台。
4. CentOS Stream vs. Rocky Linux / AlmaLinux / 等 RHEL 重建版
- 定位: 这些发行版旨在成为传统的 CentOS Linux 的替代者,提供与 RHEL 1:1 的二进制兼容性。它们是 RHEL 的下游。
- 更新模式: 它们也是基于 RHEL 发布后,重新编译构建,提供稳定、长期的支持版本(与 RHEL 的生命周期相似)。
- 与 RHEL 的关系: 这些发行版是 RHEL 的下游克隆;Stream 是 RHEL 的上游源。
- 目标用户: 它们更适合那些需要免费、稳定、与 RHEL 高度兼容的生产环境用户。
5. CentOS Stream vs. Ubuntu LTS
- 生态系统: CentOS Stream 属于 RHEL/Fedora 生态系统,使用 RPM 包管理器 (
dnf
);Ubuntu 属于 Debian 生态系统,使用 APT 包管理器 (apt
)。 - 版本类型: Stream 是滚动预览;Ubuntu LTS (Long Term Support) 是基于快照的长期支持版本。
- 稳定性: Ubuntu LTS 是经过广泛测试的稳定版本,适合生产环境;Stream 是开发分支,稳定性相对较低。
- 软件包: 软件包的命名、版本和可用性不同。
理解这些差异有助于你根据自己的需求选择最合适的Linux发行版。CentOS Stream并非适用于所有原CentOS Linux的场景,但它在特定的用途下具有独特的价值。
第六部分:社区与支持
CentOS Stream作为一个社区驱动的项目,社区是其生命线。
- 官方网站: https://www.centos.org/ 提供最新的信息、下载链接和文档资源。
- 邮件列表: CentOS 项目有多个邮件列表,用于讨论不同的主题,如开发、用户支持、公告等。这是获取帮助和参与讨论的主要方式。
- Wiki: https://wiki.centos.org/ 包含大量的文档、指南和常见问题解答。
- IRC/Matrix: 在 freenode 或 Matrix 上有相关的频道,可以进行实时交流。
- Bug Tracking: 可以通过 Bugzilla 报告你在 CentOS Stream 中遇到的问题。
- 贡献: 如果你有兴趣,可以参与到 CentOS Stream 的代码贡献、测试、文档编写等方面。
需要注意的是,CentOS Stream没有官方的商业支持合同。你遇到的问题主要依靠社区的帮助来解决。对于企业级应用,如果需要SLA级别的支持,那么RHEL是更合适的选择。
第七部分:未来展望
CentOS Stream作为RHEL开发流程中的一个重要环节,其地位在Red Hat的战略中已经确立。它将继续作为连接Fedora和RHEL的桥梁,承载着RHEL未来版本的预览和社区贡献的功能。
虽然传统CentOS Linux的结束让一些用户转向了AlmaLinux或Rocky Linux等重建版,但CentOS Stream仍然是Red Hat主导的、直接影响RHEL的唯一免费发行版。对于那些希望深入了解RHEL技术、参与其开发或在非关键环境中使用较新RHEL特性的用户来说,CentOS Stream将是首选。
它的未来发展将紧密跟随RHEL的开发节奏,持续集成新的技术和软件包。社区的参与度将是衡量其活力的重要指标。
结论
CentOS Stream 是 Red Hat Enterprise Linux 开发流程中的一个重要组成部分,它扮演着 RHEL “滚动预览”和上游开发分支的角色。它不是传统 CentOS Linux 的简单替代品,两者在定位、稳定性、更新模式和目标用户上存在显著差异。
通过 CentOS Stream,用户可以更早地接触到 RHEL 的新特性,参与到企业级 Linux 的开发过程中,并在一个接近未来 RHEL 的环境中进行开发和测试。然而,它并非为对稳定性有极致要求的关键生产环境而设计,用户需要权衡其优势与挑战。
如果你是一个开发者、测试者,希望提前体验 RHEL 的未来,或者乐于参与社区贡献,那么 CentOS Stream 是一个非常有价值的选择。如果你寻求的是像传统 CentOS Linux 那样的免费、稳定、长期支持的生产环境基础,那么 AlmaLinux 或 Rocky Linux 等 RHEL 重建版可能更适合你。
理解 CentOS Stream 的真正含义和定位,是做出明智选择的第一步。希望本文能帮助你揭开 CentOS Stream 的神秘面纱,并为你迈出第一步提供清晰的指引。拥抱变化,探索新的机遇,Linux 的世界永远充满活力。