准确的说,是从 CentOS 6.5 先升级到 CentOS 7.2。只有 6.5 以上版本才能这么升级,而且最高只能升级到 7.2。
现在的问题是官网已经不再维护 CentOS 6 了,CentOS 6 要如何使用 yum 源?其实,官网的历史版本还是有的,地址是:https://vault.centos.org/。当然,我们还是使用清华大学的镜像站:https://mirrors.tuna.tsinghua.edu.cn/centos-vault。
【友情提醒】升级有风险,操作需谨慎。
我准备的操作系统是 CentOS 6.5:
CentOS release 6.5 (Final)
一、配置清华大学镜像 yum 源:
CentOS 6 最高版本是 6.10,当然,也可以使用操作系统对应版本的 yum 源,我这里使用最高版本 6.10 的 yum 源:
> -e 's|^#baseurl=http://mirror.centos.org/centos/\$releasever|baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-vault/6.10|g' \
> -e '/gpgkey=/d' \
> -e 's|^gpgcheck=1|gpgcheck=0|g' \
> /etc/yum.repos.d/CentOS-Base.repo
由于访问的是 https,还需要关闭证书的认证:
更新软件包缓存:
对于 CentOS 6.5 以下版本,建议使用如下命令升级到 CentOS 6.10:
对于 CentOS 6.5 以上版本,可使用当前版本继续以下操作。
二、升级 yum 工具
安装证书:
启用证书认证:
升级 nss:
升级 yum:
三、配置升级工具 yum 源
> [CentOS-Upgrade]
> name=CentOS-Upgrade
> baseurl=https://buildlogs.centos.org/centos/6/upg/\$basearch/
> enabled=1
> gpgcheck=0
> EOF
四、安装 libxslt
五、移除基础 yum 源
清除 yum 缓存:
更新软件包缓存:
六、安装 openscap
七、恢复基础 yum 源
八、安装 preupgrade-assistant-contents、redhat-upgrade-tool
九、导入 CentOS 7 GPG Key
十、预升级
确认没有问题后,继续以下操作。
十一、在线升级
注意:最高只允许升级到 7.2.1511 版本。
输入“y”,继续升级:
重启:
重启完以后,网卡没有启动,需要手动进行修复:
[root@RicenOS ~]# ln -s /usr/lib64/libsasl2.so.3.0.0 /usr/lib64/libsasl2.so.2
[root@RicenOS ~]# systemctl restart network
十二、升级后的清理工作
1、删除升级工具
2、配置 CentOS 7 yum 源
删除 CentOS 6 yum 源:
[root@RicenOS ~]# rm -rf /etc/yum.repos.d/CentOS-Upgrade.repo
[root@RicenOS ~]# rm -rf /etc/yum.repos.d/CentOS-Base.repo
恢复 CentOS 7 基础 yum 源:
配置清华大学镜像 yum 源:
> -e 's|^#baseurl=http://mirror.centos.org|baseurl=https://mirrors.tuna.tsinghua.edu.cn|g' \
> -e '/gpgkey=/d' \
> -e 's|^gpgcheck=1|gpgcheck=0|g' \
> /etc/yum.repos.d/CentOS-*.repo
清除 yum 缓存:
更新软件包缓存:
3、升级软件包
通过命令 rpm -qa | grep -i el6 可以看到,还存在大量的 el6 残留软件包。这里,我写了一个 shell 脚本进行批量升级:
代码如下:
# 作者:靑龍一笑(C.S.Ricen)
# 功能:批量升级 CentOS 6 软件包
#
###### 注意语法格式 ######
# done 和 < 之间没有空格 #
# 两个 < 之间有一个空格 #
# < 和 ( 之间没有空格 #
##########################
while read line
do
softname=${line%-*}
yum update ${softname%-*} -y
done< <(rpm -qa | grep -i el6)
exit 0
赋予可执行权限:
执行批量升级:
4、降级软件包
由于 CentOS 6 有些软件包的版本比 CentOS 7 的版本要高,这些软件包不能进行升级,而应该进行降级。这里,我写了一个 shell 脚本进行批量降级:
代码如下:
# 作者:靑龍一笑(C.S.Ricen)
# 功能:批量降级 CentOS 6 软件包
#
###### 注意语法格式 ######
# done 和 < 之间没有空格 #
# 两个 < 之间有一个空格 #
# < 和 ( 之间没有空格 #
##########################
while read line
do
softname=${line%-*}
yum downgrade ${softname%-*} -y
done< <(rpm -qa | grep -i el6)
exit 0
赋予可执行权限:
执行批量降级:
5、删除 CentOS 6 残留软件包
通过升级、降级操作,剩下的 el6 为残留软件包。这里,我写了一个 shell 脚本进行批量删除:
代码如下:
# 作者:靑龍一笑(C.S.Ricen)
# 功能:批量卸载 CentOS 6 软件包
#
###### 注意语法格式 ######
# done 和 < 之间没有空格 #
# 两个 < 之间有一个空格 #
# < 和 ( 之间没有空格 #
##########################
while read line
do
yum erase ${line} -y
done< <(rpm -qa | grep -i el6)
exit 0
赋予可执行权限:
执行批量删除:
十三、升级到 CentOS 7 最新版本
重启:
检查升级后的版本:
CentOS Linux release 7.9.2009 (Core)
Copyright © 2005-2023 by www.ricensoftwares.com.cn All Rights Reserved.