无法提取 EPEL 存储库元数据

无法提取 EPEL 存储库元数据

根据Scientific Linux安装Nginx本文档失败:

[vagrant@localhost ~]$ sudo su -c 'rpm -Uvh http://dl.fedoraproject.org/pub/epe
l/6/x86_64/epel-release-6-8.noarch.rpm'
Retrieving http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch
.rpm
warning: /var/tmp/rpm-tmp.gdSOR9: Header V3 RSA/SHA256 Signature, key ID 0608b89
5: NOKEY
Preparing...                ########################################### [100%]
   1:epel-release           ########################################### [100%]
[vagrant@localhost ~]$ sudo yum install nginx
Loaded plugins: security
Error: Cannot retrieve repository metadata (repomd.xml) for repository: epel. Pl
ease verify its path and try again
[vagrant@localhost ~]$

版本信息

[vagrant@localhost ~]$ uname -a
Linux localhost.localdomain 2.6.32-431.el6.x86_64 #1 SMP Thu Nov 21 13:35:52 CST
 2013 x86_64 x86_64 x86_64 GNU/Linux
[vagrant@localhost ~]$ cat /etc/*{release,version}
Scientific Linux release 6.5 (Carbon)
Scientific Linux release 6.5 (Carbon)
cat: /etc/*version: No such file or directory
[vagrant@localhost ~]$

笔记: sudo yum update -y在开始安装nginx之前发出

禁用其他软件包的安装

[vagrant@localhost ~]$ sudo yum install vim -y
Loaded plugins: security
Error: Cannot retrieve repository metadata (repomd.xml) for repository: epel. Pl
ease verify its path and try again
[vagrant@localhost ~]$

URLGRABBER 调试器日志

2014-08-03 14:22:44,437 attempt 1/10: https://mirrors.fedoraproject.org/metalink
?repo=epel-6&arch=x86_64
INFO:urlgrabber:attempt 1/10: https://mirrors.fedoraproject.org/metalink?repo=ep
el-6&arch=x86_64
2014-08-03 14:22:44,438 opening local file "/var/cache/yum/x86_64/6.5/epel/metal
ink.xml.tmp" with mode wb
INFO:urlgrabber:opening local file "/var/cache/yum/x86_64/6.5/epel/metalink.xml.
tmp" with mode wb
* About to connect() to mirrors.fedoraproject.org port 443 (#0)
*   Trying IP... * connected
* Connected to mirrors.fedoraproject.org (IP) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* NSS error -8018
* Closing connection #0
* Problem with the SSL CA cert (path? access rights?)
2014-08-03 14:22:50,071 exception: [Errno 14] PYCURL ERROR 77 - "Problem with th
e SSL CA cert (path? access rights?)"
INFO:urlgrabber:exception: [Errno 14] PYCURL ERROR 77 - "Problem with the SSL CA
 cert (path? access rights?)"
2014-08-03 14:22:50,072 retrycode (14) not in list [-1, 2, 4, 5, 6, 7], re-raisi
ng
INFO:urlgrabber:retrycode (14) not in list [-1, 2, 4, 5, 6, 7], re-raising
Error: Cannot retrieve repository metadata (repomd.xml) for repository: epel. Pl
ease verify its path and try again

尝试安装 nginx 之前和之后输出 yum update

[vagrant@localhost ~]$ sudo yum update -y
Loaded plugins: security
Error: Cannot retrieve repository metadata (repomd.xml) for repository: epel. Pl
ease verify its path and try again
[vagrant@localhost ~]$

yum --disablerepo="epel" 更新

[vagrant@localhost ~]$ sudo yum --disablerepo="epel" update
Loaded plugins: security
Setting up Update Process
No Packages marked for Update

答案1

问题是 nss 包太旧了。这个旧版本无法与curl使用旧版本 nss 库的Fedora 站点进行通信。

只需将您的 nss 版本更新到最新,它就可以解决 EPEL repo 更新的问题:

$ sudo yum clean all 
$ sudo yum --disablerepo="epel" update nss

笔记:这个版本的nss-3.14.3-4.el6_4.x86_64与 EPEL 存储库配合良好。

答案2

如果以下操作失败:

yum check-update

但:

yum --disablerepo="epel"  check-update

有效,然后运行:

URLGRABBER_DEBUG=1 yum check-update 2> debug.log

并检查debug.log

PYCURL ERROR 77 - "Problem with the SSL CA cert (path? access rights?)"

如果发现此消息,请尝试:

yum --disablerepo="epel" reinstall ca-certificates

如果这无法解决问题,那么您可能需要更新您的 ca 证书:

yum --disablerepo="epel" update ca-certificates

如果无法解决问题,请备份当前的 CA 证书:

cp /etc/pki/tls/certs/ca-bundle.crt /root/

并运行:

curl http://curl.haxx.se/ca/cacert.pem -o /etc/pki/tls/certs/ca-bundle.crt

解释

该日志显示系统的 SSL 证书有错误。

您系统上的 CA 证书捆绑包可能已损坏,yum -disablerepo="epel" reinstall ca-certificates上面的命令只是用新版本覆盖您的证书捆绑包。这不太可能是答案,因为所有其他存储库都在工作 - 如果存在重大 SSL 问题,那么所有存储库都会失败。

上面的命令curl...将系统的 CA 证书包替换为更新版本。 CA 证书捆绑包包含您的系统信任的所有根 CA 证书。

在这种情况下,EPEL 存储库具有您的系统不信任的新 SSL 证书(由新的根 CA 签名)。 CentOS 存储库继续使用其稍旧的证书。

答案3

我在公司代理后面工作时遇到了同样的错误。更新证书或使用 http 没有帮助。为了解决这个问题,我必须向每个 epel 存储库添加代理设置:

for x in /etc/yum.repos.d/epel*; do sed -i '/^\[/ a proxy=http://YOUR.PROXY.HERE:8080' $x; done

当然,插入您自己的代理详细信息。

我的存储库文件现在如下所示:

[epel]
proxy=http://YOUR.PROXY.HERE:8080
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

[epel-debuginfo]
proxy=http://YOUR.PROXY.HERE:8080
...

答案4

我遇到了同样的问题,尝试了上述所有步骤均无效。发现我是多么愚蠢,因为我试图在不登录 root 的情况下安装。即使你我的帐户有 sudo 访问权限。

sudo yum remove epel-release

su root

sudo yum install epel-release

修复了我在 CentOS 7 上的问题

相关内容