Rocky Linux替代CentOS
CentOS 8 停止维护后,很多站长都在找稳定的替代品。Rocky Linux 与 CentOS 同属 RHEL 生态,兼容性最好且长期免费。
这篇文章我带你从头到尾把现有 CentOS 逐步换成 Rocky Linux,过程中能直接执行的命令我都会写清楚,零基础也能跟着做。
迁移前必须做好的几件事
先把数据和安全搞定,别急着动手。
- 确认当前系统版本 – 登录服务器,运行
cat /etc/centos-release查看。CentOS 7 / 8 都支持迁移,但步骤稍有不同(本文以 CentOS 7.9 为例)。 - 备份关键数据 – 网站文件、数据库、配置文件(如 Nginx、MySQL)。最简单的备份:
tar czvf backup_$(date +%F).tar.gz /var/www /etc/nginx /etc/my.cnf /var/lib/mysql。数据库导出:mysqldump -u root -p --all-databases > all.sql。 - 确认服务器能访问外网 – 因为需要从 Rocky Linux 官方仓库下载包。运行
ping -c 4 mirrors.rockylinux.org能通即可。 - 最小化运行服务 – 迁移前先停掉不必要的应用,减少干扰。
一步步将 CentOS 换成 Rocky Linux
Rocky Linux 官方提供了迁移脚本 migrate2rocky,我们直接用。
第一步:下载迁移脚本
wget https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh
chmod +x migrate2rocky.sh
第二步:执行迁移(替换 yum 源并安装 Rocky Linux 内核)
sudo bash migrate2rocky.sh -r
参数 -r 表示转换后自动重启。
脚本会检测当前系统、备份原 yum 源、下载 Rocky 仓库、替换关键包。
整个过程大约 5~15 分钟,取决于网络和 CPU。
第三步:重启并检查启动项
sudo reboot
重启后通过 SSH 连接。
如果看到 Rocky Linux 字样,说明切换成功。
常见报错与避坑说明
提示“No match for argument: rocky-release”
原因:CentOS 7 的 yum 版本太低或源被修改过。
解决方案:先更新 yum sudo yum update -y,再重新执行迁移脚本。
迁移后某些服务无法启动
比如 Nginx 报错 libcrypto.so.10 找不到 – 这是因为 Rocky Linux 9 已不再包含旧版 OpenSSL。
解决办法:将服务更新到兼容版本,或使用 yum install openssl10 安装兼容包。
网站数据库连接失败
检查 /etc/my.cnf 是否因为迁移被覆盖。
直接恢复之前备份的 my.cnf 并重启 MySQL:sudo systemctl restart mysqld。
不要在生产环境直接操作
先克隆一台测试机跑一遍流程。
如果用云服务器,先做快照或镜像。
验证迁移结果
- 查看系统版本 –
cat /etc/os-release,确认输出中有Rocky Linux字样。 - 检查进程和服务 –
ps aux | grep nginx、systemctl status httpd确保你的 Web 服务正常运行。 - 访问网站测试 – 在浏览器打开站点,或 curl 本地:
curl -I http://localhost。如果返回 200,说明网站已正常工作。 - 检查 yum 源 –
yum repolist应该显示 Rocky Linux 的官方仓库,比如rocky-base、rocky-extras。
如果你正在处理 Rocky Linux 替代 CentOS,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。
顺利迁移后,你的服务器将获得至少十年的生命周期支持,再也不用担心安全补丁断层了。