登录
首页 >  文章 >  linux

CentOS 7迁移到Rocky Linux 9详细教程

时间:2026-05-21 19:41:37 272浏览 收藏

本文详解了从 CentOS 7 直接迁移到 Rocky Linux 9 的唯一可行路径——通过 `dnf distro-sync --allowerasing` 配合严格顺序的“清源→换钥→配仓”三步前置操作,彻底绕过因 yum/Python/rpm 工具链断层(2.7→3.9、4.11→4.18)导致的传统升级方案(如 yum swap 或 Leapp)失效问题;同时强调迁移不仅是命令执行,更需清理残留包、验证自启服务、检查内核模块与启动日志,并直面 glibc 等核心组件大幅升级带来的应用兼容性挑战——系统能启动只是起点,业务真正稳定运行才是迁移成功的终极标尺。

CentOS 7怎么平滑迁移至Rocky Linux 9 操作系统跨版本迁移详解

dnf distro-sync --allowerasing 是唯一能完成 CentOS 7 → Rocky Linux 9 直接跨大版本迁移 的命令,但必须配合前置清理、GPG 密钥导入和仓库切换——跳过任一环节都会卡在依赖冲突或签名验证失败。

为什么不能用 yum swap 或升级脚本?

CentOS 7 使用 yum + Python 2.7 + rpm 4.11,Rocky 9 使用 dnf + Python 3.9 + rpm 4.18,底层工具链不兼容。所谓「ELevate + Leapp」方案实际要求先升到 Rocky 8(中间态),再升到 9;生产环境若想一步到位,只能走「仓库替换 + 全量同步」路径,而非传统意义上的“升级”。

关键三步:清源、换钥、同步

这三步顺序不能乱,否则 dnf distro-sync 会因元数据混杂而报错:

  • 先执行 yum clean all && rm -rf /etc/yum.repos.d/CentOS-*,清空所有 CentOS 7 仓库残留
  • 再导入 Rocky 官方 GPG 密钥:rpm --import https://dl.rockylinux.org/pub/rocky/RPM-GPG-KEY-rockyofficial
  • 最后配置 Rocky 9 仓库(推荐阿里云镜像):/etc/yum.repos.d/rocky.repo 中 baseurl 必须指向 $releasever9 的路径,例如 https://mirrors.aliyun.com/rockylinux/9/BaseOS/x86_64/os/

执行同步时最常遇到的错误

Transaction check error: package xxx conflicts with file from package yyy —— 这类报错几乎都源于未清理旧内核或残留的 centos-release 包。务必在同步前运行:

  • rpm -e --nodeps centos-release centos-gpg-keys centos-repos
  • rpm -qa | grep kernel | grep -v "$(uname -r)" | xargs -r rpm -e --nodeps(卸载所有非当前运行的内核)
  • 确认 rpm -q rocky-release 返回包名,且 dnf repolist 只显示 Rocky 9 的 repo

迁移后必须验证的三项

同步成功不等于系统可用,以下三点漏掉任意一项,服务就可能在重启后起不来:

  • systemctl list-unit-files --state=enabled 查看开机自启项是否完整(尤其 sshdfirewalldNetworkManager
  • lsmod | grep -E "(xfs|ext4|nvme|virtio)" 确认核心文件系统与硬件驱动模块已加载(Rocky 9 默认启用 XFS,CentOS 7 多为 ext4,若根分区是 ext4 则无需改动)
  • journalctl -b -p 3 检查本次启动是否有 level=3(error)日志,重点关注 systemdkerneldbus 三个单元

真实迁移中最大的隐性成本不在命令执行,而在应用层适配:glibc 从 2.17 升到 2.34 后,所有静态链接或硬编码 LD_LIBRARY_PATH 的二进制程序(比如老版本 Jenkins 插件、定制监控 agent)都需要重新测试。别只盯着系统是否起来,得让上面跑的业务真正动起来。

理论要掌握,实操不能落!以上关于《CentOS 7迁移到Rocky Linux 9详细教程》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>