在 CentOS 系统中,“替换旧版本”通常指升级系统版本(如从 CentOS 7 升级到 CentOS 8)或替换旧软件包。以下是针对不同场景的详细操作指南:
⚠️ 注意:CentOS 官方已停止维护 CentOS 8(2021 年底),且 CentOS 7 也将于 2024 年 6 月 EOL(生命周期结束)。不建议直接升级到 CentOS 8,更推荐迁移到替代发行版(如 Rocky Linux、AlmaLinux、CentOS Stream)。
若仍需升级(如从 CentOS 7 到 CentOS Stream 8/9),步骤如下(以 CentOS 7 → CentOS Stream 8 为例):
升级前务必备份 /etc、/home、/var 等关键目录,避免数据丢失。
CentOS 7 默认仓库不含 Stream 版本,需先添加 Stream 仓库:
# 安装 epel-release(可选,部分依赖需要)
yum install -y epel-release
# 安装 CentOS Stream 7 仓库(作为过渡)
yum install -y centos-release-stream
# 将基础仓库替换为 Stream 仓库
yum swap -y centos-linux-repos centos-stream-repos
yum update -y
reboot # 重启后生效
⚠️ 跨大版本升级风险较高,建议先在测试环境验证。需使用 leapp 工具(官方升级工具):
# 安装 leapp 工具
yum install -y leapp-upgrade
# 预检查升级兼容性(会生成报告,需解决所有阻塞问题)
leapp preupgrade
# 若有阻塞(如内核模块、第三方软件),需先处理(例如卸载不兼容的包)
# 确认无阻塞后,执行升级
leapp upgrade
# 升级完成后重启,系统会自动进入升级流程
reboot
升级完成后,验证版本:
cat /etc/redhat-release # 应显示 CentOS Stream 8
若只需升级某个旧软件包(如 Python、Nginx),可通过 yum(CentOS 7)或 dnf(CentOS 8+)直接操作:
rpm -qa | grep 软件名 # 例如:rpm -qa | grep nginx
yum update 软件名 -y # 例如:yum update nginx -y
dnf update 软件名 -y # 例如:dnf update nginx -y
# 查看可用版本
yum --showduplicates list 软件名 # 例如:yum --showduplicates list nginx
# 安装指定版本(格式:软件名-版本号)
yum install 软件名-版本号 -y # 例如:yum install nginx-1.20.2-1.el7
由于 CentOS 传统版本(7/8)已停止维护,建议迁移到兼容 RHEL 的替代发行版(如 Rocky Linux、AlmaLinux),步骤如下(以 CentOS 7 → Rocky Linux 8 为例):
Rocky Linux 提供 migrate2rocky 脚本:
# 下载迁移脚本
curl -O https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh
# 赋予执行权限
chmod +x migrate2rocky.sh
# 运行脚本(需 root 权限)
./migrate2rocky.sh -r # -r 表示自动重启
# 迁移过程中会替换系统仓库、更新核心包,耐心等待
重启后检查版本:
cat /etc/redhat-release # 应显示 Rocky Linux 8
rsync、tar 或快照)。如果遇到具体场景(如升级特定软件、解决升级报错),可提供更多细节,我会进一步协助!