You’ve installed an older CentOS version and most likely dnf fails to update or install packages. This error is due to CentOS mirror being relocated to the vault instead.

[root@av1 ~]# dnf install python3-librepo -y
Failed loading plugin "osmsplugin": No module named 'librepo'
CentOS Linux 8 - AppStream                                                                      426  B/s |  38  B     00:00    
Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist

In order to fix this error, you’ll have to rename the target mirror as follows:

sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-Linux-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-Linux-*

Running any dnf command, updating and installing packages should be working just fine now.

Photo by Jason Dent on Unsplash