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 等核心组件大幅升级带来的应用兼容性挑战——系统能启动只是起点,业务真正稳定运行才是迁移成功的终极标尺。

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 必须指向$releasever为9的路径,例如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-reposrpm -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查看开机自启项是否完整(尤其sshd、firewalld、NetworkManager)lsmod | grep -E "(xfs|ext4|nvme|virtio)"确认核心文件系统与硬件驱动模块已加载(Rocky 9 默认启用 XFS,CentOS 7 多为 ext4,若根分区是 ext4 则无需改动)journalctl -b -p 3检查本次启动是否有 level=3(error)日志,重点关注systemd、kernel、dbus三个单元
真实迁移中最大的隐性成本不在命令执行,而在应用层适配:glibc 从 2.17 升到 2.34 后,所有静态链接或硬编码 LD_LIBRARY_PATH 的二进制程序(比如老版本 Jenkins 插件、定制监控 agent)都需要重新测试。别只盯着系统是否起来,得让上面跑的业务真正动起来。
理论要掌握,实操不能落!以上关于《CentOS 7迁移到Rocky Linux 9详细教程》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
272 收藏
-
181 收藏
-
335 收藏
-
397 收藏
-
453 收藏
-
268 收藏
-
473 收藏
-
330 收藏
-
210 收藏
-
308 收藏
-
390 收藏
-
392 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习