CentOS 6 官方停止维护,最近执行yum安装软件或者更新软件的时候,提示404 Not Found,通过检查CentOS 6的源才知道已经停止维护了。按照官方的说法,CentOS 6在2020年11月30日停止维护,停止维护之后,官方的源不能使用了。CentOS 7一直维护到2024年6月30日,而CentOS 8只维护到2021年12月31日。
官方源提示信息:
Please keep in mind that 6.0, 6.1, 6.2, 6.3, 6.4 , 6.5, 6.6, 6.7, 6.8 , 6.9 and 6.10 no longer get any updates, nor
any security fix’s.
The whole CentOS 6 is dead and shouldn’t be used anywhere at all
配置升级工具upgradetool源
cat <<EOF >/etc/yum.repos.d/upgrade.repo
[upgrade]
name=upgrade
baseurl=https://buildlogs.centos.org/centos/6/upg/x86_64/
enable=1
gpgcheck=0
EOF
删除/etc/yum.repo.d下面多余的源,只保留upgradetool源
安装升级工具
为防止报错preupg: error: [Errno 2] No such file or directory: '/root/preupgrade/result.html'
,重新装旧版本的openscp
yum erase -y openscap &&\
yum install -y http://buildlogs.centos.org/centos/6/upg/x86_64/Packages/openscap-1.0.8-1.0.1.el6.centos.x86_64.rpm &&\
sudo yum install -y preupgrade-assistant-contents redhat-upgrade-tool preupgrade-assistant
查看支持的升级
preupg -l
执行升级分析
preupg -s CentOS6_7
分析结果不能有fail的,有fail的可以看看是否先卸载对应的软件。我自己的服务器,报告的gnome desktop环境相关的fail,我执行了yum erase gnome*查看卸载gnome的影响,如果没有影响业务,则执行卸载,再次执行preupg -s CentOS6_7检查升级的兼容性。
导入CentOS7的key,使用阿里云的源
rpm --import https://mirrors.aliyun.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7
使用阿里云的源升级系统
centos-upgrade-tool-cli --network 7 --force --instrepo=https://mirrors.aliyun.com/centos-vault/7.2.1511/os/x86_64/
注意只能升级到7.2,其他版本的升级会报告以下错误
Downloading failed: invalid data in .treeinfo: No section: 'checksums'
如果之前用过其他版本的升级源,在升级过程中可能会出现以下,这时可以通过centos-upgrade-tool-cli –clean先清理一下, 然后再执行上面的命令执行更新。
Downloading failed: failure: repodata/6882feea31727f25dc12063b4bab119501d25dbf6cb6fa0f5b78b8e3d5401ea4-filelists.sqlite.bz2 from cmdline-instrepo: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"
更新完成后执行reboot
如果启动的时候报告fail to start LSB,进入单用户模式,通过以下命令进行修复
ln -s /usr/lib64/libsasl2.so.3.0.0 /usr/lib64/libsasl2.so.2
ln -s /usr/lib64/libpcre.so.1.2.0 /usr/lib64/libpcre.so.0
升级之后的清理工作
- CentOS 6的grep版本比CentOS 7的高,导致grep升级失败,执行yum downgrade grep进行降级。其他高版本导致升级失败的也可以使用相同的方式进行处理
- 删除CentOS 6下安装的升级工具yum erase redhat-upgrade-tool
- 通过rpm -qa | grep -i el6检查el6残留包,使用yum erase命令进行删除
- 恢复配置CentOS6下的第三方源,修改成CentOS7的版本,例如我的服务器有Mysql、gitlab的第三方源,配置好之后,通过执行yum install命令再次安装相关的软件就能恢复
- 最后执行yum upgrade升级到最新的版本