从 CentOS 迁移到 CentOS Stream:完整指南 – wiki基地

从 CentOS 迁移到 CentOS Stream:完整指南

介绍

2020年底,红帽(Red Hat)宣布将战略重心从传统的 CentOS Linux 转移到 CentOS Stream。这一变化标志着 CentOS 项目的重大转型。本文旨在为系统管理员和开发者提供一份详尽的指南,帮助您理解这一变化,并顺利地将现有的 CentOS 8 系统迁移到 CentOS Stream 8。

  • CentOS Linux (传统版):作为 Red Hat Enterprise Linux (RHEL) 的下游重建版本,它在 RHEL 发布之后进行编译,因此以其稳定性和与 RHEL 的高兼容性而闻名,被广泛用于生产环境。
  • CentOS Stream (滚动版):定位在 Fedora 和 RHEL 之间,是 RHEL 的上游开发分支。它作为一个“滚动预览版”,持续接收即将集成到下一个 RHEL 次要版本中的新功能和补丁。

CentOS Linux 8 已于 2021 年 12 月 31 日停止维护(EOL),这意味着它将不再接收任何官方的安全更新和错误修复。因此,迁移到一个受支持的操作系统变得至关重要。

为什么要迁移到 CentOS Stream?

迁移到 CentOS Stream 对许多用户来说是一个合乎逻辑的选择,原因如下:

  • 更早获得新功能:您可以提前体验并测试计划用于 RHEL 的新软件和功能。
  • 影响 RHEL 的未来:社区成员和开发者可以通过贡献和反馈,直接参与到 RHEL 的开发流程中。
  • 官方支持的迁移路径:红帽官方提供了从 CentOS Linux 8 到 CentOS Stream 8 的平滑迁移工具。
  • 持续更新:系统可以持续接收最新的软件包更新,而不是等待 RHEL 的次要版本发布。

关键区别:CentOS Linux vs. CentOS Stream

为了做出明智的决策,请务必理解两者之间的核心差异:

特性 CentOS Linux CentOS Stream
与 RHEL 的关系 下游 (Downstream) 上游 (Upstream)
发布模式 定点发布 (Point Release) 滚动发布 (Rolling Release)
稳定性 非常稳定,适合生产 相对稳定,但更前沿
目标用户 寻求免费、稳定 RHEL 替代品的生产环境 开发者、测试者以及希望影响 RHEL 的用户
更新频率 较低,随 RHEL 次要版本更新 较高,通常为每日或每周
社区贡献 间接 直接,可影响 RHEL

迁移前的准备工作

在开始迁移之前,请务必完成以下准备工作,以确保数据安全和系统稳定:

  1. 创建完整备份!
    这是最重要的一步。请使用您偏好的工具(如 rsynctar 或云服务商的快照功能)为您的整个系统创建一个完整、可恢复的备份。如果迁移过程中出现任何问题,备份是您唯一的保障。

  2. 更新现有系统
    确保您当前的 CentOS Linux 8 系统已安装所有可用的更新。

    bash
    sudo dnf update -y

  3. 重启系统
    如果更新中包含内核升级,强烈建议重启系统以加载最新的内核。

    bash
    sudo reboot

Step-by-Step 迁移指南 (从 CentOS Linux 8 到 CentOS Stream 8)

官方提供的迁移过程非常简单。只需几个命令即可完成。

第 1 步:安装 CentOS Stream 发布包

此命令会安装包含 CentOS Stream 仓库信息和 GPG 密钥的软件包。

bash
sudo dnf install centos-release-stream -y

第 2 步:切换仓库

使用 dnfswap 命令,将系统的仓库配置从 CentOS Linux 切换到 CentOS Stream。

bash
sudo dnf swap centos-{linux,stream}-repos -y

第 3 步:同步软件包

这是迁移的核心步骤。distro-sync 命令会将您系统上安装的所有软件包同步到 CentOS Stream 仓库中的最新版本。它可能会升级、降级或保持现有软件包不变,以匹配 Stream 的状态。

bash
sudo dnf distro-sync -y

注意:此过程会下载大量软件包,可能需要一些时间,具体取决于您的网络速度和系统已安装的软件数量。请耐心等待其完成。

迁移后的验证

迁移完成后,您需要验证系统是否已成功切换到 CentOS Stream。

  1. 重启系统
    为了确保所有更新(包括可能的新内核)都已正确加载,请重启您的服务器。

    bash
    sudo reboot

  2. 检查操作系统版本
    登录系统后,运行以下命令来检查操作系统版本信息:

    bash
    cat /etc/os-release

    您应该能看到类似以下的输出,明确标识为 CentOS Stream

    NAME="CentOS Stream"
    VERSION="8"
    ID="centos"
    ID_LIKE="rhel fedora"
    VERSION_ID="8"
    PLATFORM_ID="platform:el8"
    PRETTY_NAME="CentOS Stream 8"
    ANSI_COLOR="0;31"
    CPE_NAME="cpe:/o:centos:centos:8"
    HOME_URL="https://centos.org/"
    BUG_REPORT_URL="https://bugzilla.redhat.com/"
    REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux 8"
    REDHAT_SUPPORT_PRODUCT_VERSION="CentOS Stream"

    或者,使用更简洁的命令:

    bash
    cat /etc/redhat-release

    输出应为:CentOS Stream release 8

潜在的挑战和注意事项

  • 第三方仓库:如果您使用了如 EPEL 或其他第三方仓库,请确保它们与 CentOS Stream 兼容。在大多数情况下,为 RHEL 8 设计的仓库(如 EPEL 8)可以继续工作。
  • 内核:CentOS Stream 的内核版本会比 RHEL 的更新。这可能会影响依赖特定内核版本的驱动程序或软件。
  • 回滚困难:迁移到 CentOS Stream 是一个单向操作,没有简单的官方方法可以回滚到 CentOS Linux。唯一的恢复方式是使用您在迁移前创建的备份。

结论

从 CentOS Linux 迁移到 CentOS Stream 是一个直接且受官方支持的过程。对于希望继续在 RHEL 生态系统中工作的用户来说,这是一个自然的选择。虽然 CentOS Stream 的滚动发布模式可能不适合所有生产环境,但它为开发者和希望紧跟技术前沿的用户提供了一个绝佳的平台。

替代方案

如果 CentOS Stream 的模式不符合您的稳定性要求,社区还创建了多个与 RHEL 1:1 兼容的下游发行版,作为传统 CentOS Linux 的精神继承者:

  • Rocky Linux: 由 CentOS 创始人 Gregory Kurtzer 发起。
  • AlmaLinux: 由 CloudLinux 公司支持和维护。

这两个发行版都提供了从 CentOS 8 迁移的脚本,并且致力于长期维护,是寻求稳定生产环境的绝佳选择。

滚动至顶部