Upgrade CentOS 7 to version 8

Recently, the world saw the release of the new CentOS 8 which received many interesting innovations, such as:

  • the two main repositories are baseos and appstream. The first is designed for basic use on servers, nodes, vps/vds, etc. the Second is more suitable for workstations.
  • yum package manager is replaced by dnf from Fedora, it is faster than its predecessor and is backward compatible.
  • the cockpit Web interface appeared. You can now manage the main functions of the server from the browser.
  • delivered support Podman containers, it is an analog-compatible replacement Docker.
  • updated TCP stack to version 4.16. Which supports new methods of processing incoming connections, the use of which allows you to serve a larger number of connections.
  • network configuration is now fully managed by NetworkManager and nmcli utility.
  • there is support for booting from NVDIMM drives.
  • iptables is replaced by nftables.
  • the chrony utility is now used to synchronize ntp time.
  • the usual Xorg display server was replaced by Wayland by default.

And as part of this article I want to tell You how to upgrade CentOS 7 to CentOS 8 without reinstalling.

Back up your OS before upgrading, as the process is irreversible. Also, if you are using control panels, for now refrain from updating, since most of them do not yet support the new OS.


We put the packages necessary for the update:

yum install rpmconf epel-release yum-utils

Next, perform a reconciliation of configs, be careful, the utility offers several options (from the package, the current one…):

rpmconf -a

Remove unnecessary packages, such as those that were not installed from repositories:

package-cleanup --orphans

package-cleanup --leaves

We install dnf and remove yum:

yum install dnf

dnf remove yum yum-metadata-parser

rm -Rf /etc/yum

Upgrade the system via dnf:

dnf upgrade

Adding new centos and epel repositories:

dnf upgrade https://mirror.yandex.ru/centos/8/BaseOS/x86_64/os/Packages/centos-release-8.0-0.1905.0.9.el8.x86_64.rpm

dnf upgrade https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

Delete temporary dnf files:

dnf clean all

Remove kernels and conflicting packages:

rpm -e `rpm -q kernel`

rpm -e --nodeps sysvinit-tools

And run the process of upgrading the system:

dnf --releasever=8 --allowerasing --setopt=deltarpm=false distro-sync

Check that the new kernel is installed:

rpm -qa | grep kernel-core-4

or so

dnf install kernel-core

Install / update the minimum set of packages:

dnf groupupdate "Core" "Minimal Install"

After the process is complete, restart the OS and check the version:

cat /etc/centos-release

Next, I advise you to check the work of the installed software with the new kernel, and the update process is over.