无法提取EPEL存储库元数据


20

根据此文档在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更新

[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
yum update首先尝试,看看会发生什么。
garethTheRed 2014年

在开始安装nginx之前,执行此命令后问题仍然存在
030

尝试使用运行安装URLGRABBER_DEBUG=1 yum install nginx 2> debug.log。这会在中创建大量调试信息debug.log,但是您可能可以找出失败的地方。
garethTheRed 2014年

URLGRABBER调试日志已添加
030

我认为@garethTheRed是正确的。添加存储库后,您需要对其进行初始化,以能够检索该存储库在quesiton中提供的软件包。
Valentin Bajrami 2014年

Answers:


20

如果以下失败:

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储存库可继续使用稍旧的证书。


33

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

只需将您的nss版本更新为最新版本,即可解决EPEL存储库更新中的问题:

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

注意:此版本的nss-3.14.3-4.el6_4.x86_64可与EPEL存储库配合使用。


2
这一次为我工作在CentOS 6
NorbyTheGeek

1
感谢您发布答案,但就我而言,问题Error: Cannot retrieve repository metadata (repomd.xml) for repository: epel. Please verify its path and try again仍然存在。
030 2014年

太棒了!我工作用的Centos 6
Guided33

4

在公司代理后面工作时,我遇到了同样的错误。更新证书或使用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
...

2

我有同样的问题,并通过更改https为simple来解决http

这不是一个完美的解决方案,但是根据您的安全需求,这可能是一个不错的解决方法。


1
这并不能真正回答问题。如果您有其他疑问,可以点击提问进行提问。一旦您有足够的声誉,您还可以悬赏以吸引更多对此问题的关注。
jordanm 2015年

1
@jordanm不会影响主要问题,但可以解决。没关系对我来说。
Hauke Laging

0

我遇到了同样的问题,尝试了上述所有步骤,但均无效。发现我是多么愚蠢,因为我尝试安装时没有登录到root用户。即使您的帐户也有sudo访问权限。

sudo yum remove epel-release

su root

sudo yum install epel-release

修复了我在CentOS 7上的问题

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.