Cannot Retrieve Metalink for Repository: EPEL
When
using yum to install or update software packages through “yum install”
or “yum update” commands, the following stop error occurred:
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again
The error is related to inability to connect to external services via
HTTPS (443) connection (EPEL repo uses
HTTPS
connection by default). There are many reasons that can cause this
error, thus to resolve the issue, troubleshooting and understanding the
underlying issue is important. Here’s several possible solutions for the
error above.
One possible possibility is that the CA certificates installed on the
system has became outdated, and hence cannot connect directly due to
unverifiable certificate errors when getting the updated metalink file
for EPEL via
HTTPS. In this scenario, update the CA certificates package with the following command:
yum --disablerepo=epel -y update ca-certificates
Note that you may also need to disable all repos that uses
HTTPS protocol and are failing.
If the CA certifications are already latest with no update available,
or if you absolutely cannot get through the cannot retrieve the repo
path error, it’s possible to force the repository to use HTTP instead of
HTTPS. However, do note that this may also indicate that your system is having other problems which you need to find out.
To do so, edit the repository configuration file in
/etc/yum.repos.d/, e.g.
vi /etc/yum.repos.d/epel.repo, and then comment out the entries that are starting with
mirrorlist=, and then uncomment the entries that are starting with
baseurl=. For example,
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
Tip
You only need to change for the repos that are enabled, i.e. have enabled=1.
An alternative is to change the URL for the mirrorlist to HTTP, from HTTPS. You can do so easily with the following command:
sudo sed -i "s/mirrorlist=https/mirrorlist=http/" /etc/yum.repos.d/epel.repo
Or, edit manually
/etc/yum.repos.d/epel.repo, the change the line from:
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
To:
mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
It’s also possible to disable the SSL certificate check by adding
following line into appreciate EPEL section of
/etc/yum.repos.d/epel.repo:
sslverify=false
For example,
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
sslverify=false
Last but not least, as mentioned above, normally the HTTPS secure
connection to retrieve repositories’ databases should work. It it
doesn’t, it may hint at a larger problem. The error can also be caused
by
broken or corrupted packages, or failing yum and rpm functions, such as in the
case
of mismatched nss-softokn versions. Thus, if issue persisted after
updating CA certificates, do check around for possible other issues.