准备工作
1.安装EPEL仓库、yum-utils工具
yum -y install epel-release
yum -y install yum-utils rpmconf
2.删除重复/未使用的安装包
rpmconf -a ##列出所有不需要的安装包
package-cleanup --leaves ##列出yum仓库里所有较久或不可用的安装包
package-cleanup --orphans ##删除上条命令里展现的安装包
yum install dnf -y ##完成DNF工具安装
#升级至CentOS 8
1.更新软件至最新版
dnf upgrade -y
-此时安装会遇到报错,原因是python的版本不匹配,如下图,此时需要升级Pyhton版本与安装DNF相关组件
yum update -y python*
yum install -y dnf-data dnf-plugins-core libdnf-devel libdnf python2-dnf-plugin-migrate dnf-automatic
dnf upgrade -y
2.安装CentOS 8的镜像仓库
dnf -y install http://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/Packages/centos-repos-8.2-2.2004.0.2.el8.x86_64.rpm \
http://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/Packages/centos-release-8.2-2.2004.0.2.el8.x86_64.rpm \
http://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/Packages/centos-gpg-keys-8.2-2.2004.0.2.el8.noarch.rpm
3.升级EPEL库
dnf -y upgrade epel-release
4.移除旧内核及冲突的软件
rpm -e `rpm -q kernel`
rpm -e --nodeps sysvinit-tools ##这里只有一个冲突的软件,即sysvinit-tools
5.版本升级
dnf -y --releasever=8 --allowerasing --setopt=deltarpm=false distro-sync
-此时会出现报错,如下图所示,主要原因为在7版本和8版本软件名称发生了变化,例如Centos7里的python3-rpmconf到了8会变成python36-rpmconf
-由于这些软件有一些依赖关系,卸载后会导致RPM无法正常使用,所以处理的时候不能够直接卸载,而是删除包信息,不卸载软件(注意根据报错调整,你的版本也许不是这个)
rpm -e --justdb python36-rpmconf-1.0.22-1.el7.noarch rpmconf-1.0.22-1.el7.noarch
rpm -e -justdb yum-3.4.3-167.el7.centos.noarch ##在前面卸载过yum功能的这步可忽略
dnf -y --releasever=8 --allowerasing --setopt=deltarpm=false distro-sync
安装CentOS 8全新内核
dnf install kernel-core -y
dnf groupupdate "Core" "Minimal Install" -y
systemctl reboot