随着Centos 8的生命周期即将结束,很多原来的Centos 7系统面临上不能上下不能下的尴尬局面,如果打算切换到Rocky或者AnolisOS都需要先升级到Centos 8作为跳板,可能等Centos 8彻底死亡了会有Centos7直接升级到对应系统的方法,但是暂时没有。
这里演示从Centos 7.5升级到Centos 8.5,使用虚拟机来演示,不建议在生产服务器直接执行,有条件的可以克隆一台机器测试,没有问题再正式升级。
步骤 1,备份资料,备份资料,备份资料,这个非常非常非常重要,网上有很多方法,这里不介绍了。
步骤 2,安装EPEL存储库
yum install -y epel-release
步骤 3,安装yum-utils工具
yum install -y yum-utils
步骤 4,安装rpmconf来解析RPM软件包
yum install -y rpmconf
rpmconf -a
清理不需要的软件包
packge-cleanup --leaves
packge-cleanup --orphans
步骤 5,安装dnf,dnf是Centos 8默认的包管理工具,在系统切换到Centos8升级内核时有一些包冲突,需要dnf来删除
yum install -y dnf
删除yum包管理工具
dnf remove -y yum yum-metadata-parser
rm -rf /etc/yum
步骤 6,升级到Centos 8前准备
dnf upgrade -y
升级镜像资源库,这里建议用aliyun的资源库和EPEL库,速度比较快。
资源库使用Centos-vault8而不是原来的Centos8,好像Centos8要作废了。
wget -O /etc/yum.repo.d/Centos-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
dnf upgrade -y https://mirrors.aliyun.com/centos-vault/8.0.1905/BaseOS/x86_64/os/Packages/centos-release-8.0-0.1905.0.9.el8.x86_64.rpm
dnf upgrade -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
清除缓存
dnf clean all
删除Centos7的旧内核,删除有冲突的软件包
rpm -e `rpm -q kernel` --nodeps
rpm -e sysvinit-tools --nodeps
步骤 7,升级到Centos 8
dnf -y --releasever=8 --allowerasing --setopt=deltarpm=false distro-sync
包冲突,例如pycairo,删除之
rpm -e pycairo-xx-xx --nodeps
dracut-network依赖错误
本次演示中出现了如下的错误,在很多教程中都没有出现
错误:事务检查与依赖解决错误: (NetworkManager >= 1.20 or dhclient) 被 dracut-network-049-191.git20210920.el8.x_64 需要 rpmlib(RichDependencies) <= 4.12.0-1 被 dracut-network-049-191.git20210920.el8.x_64 需要
解决办法就是删除之,在之后的安装内核时会重新安装回来
dnf remove -y dracut-network
重新执行本步骤
步骤 8,安装CentOS8内核及软件包
安装内核
dnf install -y kernel-core
可能遇到这个错误,是因为repo文件中使用centos.org地址,访问不了而引起的,改成aliyun的源
错误:为仓库 'appstream' 下载元数据失败 : Cannot prepare internal mirrorlist: No URLs in mirrorlist
使用命令查看yum.repo.d目录,我们会发现熟悉的Centos-Base.repo不见了,取而代之的是Centos-Linux-Base.repo,内容基本一致就是名称不同而已
wget -O /etc/yum.repo.d/Centos-Linux-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
然后再重新执行内核安装脚本就没有问题了。
安装软件包
dnf groupupdate -y “Core” “Minimal Install”
这步完成后,系统已经成功升级到Centos8了,剩下升级到Rocky还是AnolisOS由自己决定,而且对应官网都有升级方法和脚本。 升级有风险,祝大家好运