yum 错误“无法检索存储库的金属链接:epel。请验证其路径并重试”更新 ContextBroker

Posted

技术标签:

【中文标题】yum 错误“无法检索存储库的金属链接:epel。请验证其路径并重试”更新 ContextBroker【英文标题】:yum error "Cannot retrieve metalink for repository: epel. Please verify its path and try again" updating ContextBroker 【发布时间】:2014-12-31 07:42:51 【问题描述】:

我正在尝试使用命令 yum install contextBroker 更新 Orion ContextBroker。不幸的是,我收到以下错误:

加载的插件:fastestmirror、refresh-packagekit、安全加载

缓存主机文件的镜像速度

错误:无法检索存储库的金属链接:epel。请验证 它的路径,然后再试一次

可能出了什么问题?

【问题讨论】:

建议的故障排除步骤:您的系统可以curl -v https://mirrors.fedoraproject.org吗? 所选择的答案是一种不能解决根本问题的解决方法,实际上包安装可能会继续失败。我建议取消选择最佳答案,让投票计数将答案排序为对大多数人有用的答案。 【参考方案1】:

您只需要更新 ca-certificates 包。在此之前,只需禁用所有失败的 https 回购。 这就是为什么使用评论镜像列表或使用 http 而不是 https 的解决方案也可以工作的原因。

例如,如果您只需要禁用 epel repo:

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

这也将有助于 wget、curl 和其他任何使用 SSL 证书的东西。

【讨论】:

这应该被接受为正确答案,因为它可以诊断问题的真正根源,而不仅仅是提供解决方法。 我已经在 CentOS 6.5 bento box 上对此进行了测试,它在运行 yum clean all && yum makecache 时确实让事情变得更加可靠。但是,它有时仍然会失败。向我的脚本添加重试使其更加可靠。我怀疑有些镜像不可靠,重试可以让另一个镜像正常工作。所以如果一开始没有成功,请再试一次! 这来自经验,是的,信息是神秘的 :) 确保您是否在公司代理后面也为 https 设置它,例如export https_proxy=<your proxy> epel-repo RPM 应该有 ca-certificates 有依赖关系!!【参考方案2】:

我解决了这个问题,编辑/etc/yum.repos.d/epel.repo/etc/yum.repos.d/epel-testing.repo 文件,注释所有以mirrorlist=... 开头的条目并取消注释所有以baseurl=... 开头的条目。

【讨论】:

在我的例子中,这个修复允许 yum 成功下载 epel repo 的元数据,但是尝试安装包然后失败 [Errno 14] Peer cert cannot be verified or peer cert invalid。正确的解决方法是更新 ca-certificates,如下面的答案所示。 注释所有以 metalink=... 开头的条目并取消注释所有以 baseurl=... 开头的条目在 RHEL7.1 上为我工作 尝试了你的方法,然后yum clean all && yum update 起作用了。但不完全是,它说epel-release-7-11.noarch: [Errno 256] No more mirrors to try 等等。所以我按照sbetharia 的建议尝试了yum update curl --disablerepo=epel,又尝试了yum clean all && yum update,它现在终于奏效了。 为我工作。非常感谢。 我没有mirrorlist= 行,但我有metalink= 行,需要评论。【参考方案3】:

使用这个命令:

sudo sed -i "s/mirrorlist=https/mirrorlist=http/" /etc/yum.repos.d/epel.repo

或者使用命令

vi /etc/yum.repos.d/epel.repo

转到第 4 行并更改网址

mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch

mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch

【讨论】:

谢谢;在尝试了许多其他记录在案的解决方案之后,这对我有用(我的错误是,Cannot retrieve metalink for repository: epel/x86_64. Please verify its path and try again)。我的问题是,为什么会这样?这是由于存储库站点的配置问题吗? 可能不是 HTTPS 服务器,但系统上的 HTTPS 客户端支持可能会过时,因为根证书颁发机构未更新,或者 SSL 库不支持新密码。跨度> 经过多次尝试,用你的 sed 命令解决了。只需复制+粘贴,这就是我所需要的,因为通常我不负责这类事情,只是安装一台测试计算机,仅供我用于测试一些数据库更新。 在 Cent OS 7.6 中,这是sudo sed -i "s/metalink=https/metalink=http/" /etc/yum.repos.d/epel.repo【参考方案4】:

我想这应该可行。我用这个解决了我的问题。

$ sudo yum clean all

$ sudo yum --disablerepo="epel" 更新 nss

【讨论】:

这适用于 Centos 6.8。谢谢 这也解决了我的问题,我很好奇为什么update nss 有助于解决这个问题?! 更新 nss 对我不起作用,但在此之后更新 curl 这也适用于 Centos 6.5。谢谢【参考方案5】:

对于我的情况,注释掉 mirrorlist 并用 baseurl 取消注释条目不起作用。我注意到问题出在.repofedora 文件中的https。我通过进入/etc/yum.repository.d 并在不同的.repo 文件中用http 替换所有https 来解决它。成功了!!

【讨论】:

这可能与 /etc/yum.conf(公司代理)中设置的代理有关?【参考方案6】:

更新 curl 对我们有用。 yum 不知何故使用 curl 进行交易。

yum update curl --disablerepo=epel

【讨论】:

你的答案比接受的答案更好,不需要更改 epel.repo 或 epel-testing.repo。 在阅读此答案或其他一些答案之前,我对其进行了跟踪并更新了 curl。我看到更新 curl 也更新了 nss ......所以我想知道这是否是问题所在。在我的例子中,我卷曲了 metalink URL,发现它失败了,并且看到它可以与 --tlsv1 (bugzilla.redhat.com/show_bug.cgi?format=multiple&id=1170339) 一起使用。假设 curl 已过时并对其进行了更新。所以现在我想知道 NSS 是否可以在不更新 curl 的情况下更新,它是否会起作用。【参考方案7】:

检查您是否通过代理访问互联网,然后将互联网代理地址添加到yum 配置。

添加

proxy=http://ip:port

/etc/yum.conf

【讨论】:

确保还指定了 https 代理。 这对我有用,但只有以下参数:proxy_username=your_user proxy_password=your_passwd 这在公司网络或 *** 中有效。谢谢拉沙德!【参考方案8】:

演练步骤

运行以下命令将更新 repo 以使用 HTTP 而不是 HTTPS:

sudo sed -i "s/mirrorlist=https/mirrorlist=http/" /etc/yum.repos.d/epel.repo

然后您应该可以使用以下命令进行更新:

yum -y update

【讨论】:

唯一适合我的解决方案!所有其他人都没有改变任何东西(我需要 epel 包)。 在 Cent OS 7.6 中,这是sudo sed -i "s/metalink=https/metalink=http/" /etc/yum.repos.d/epel.repo【参考方案9】:

安装 epel-release 后,您可能会遇到此消息/错误。快速解决方法是更新您的 SSL 证书:

yum -y upgrade ca-certificates

证书更新时也可能出现上述错误,如果是这样,只需禁用epel repo,即使用以下命令:

yum -y upgrade ca-certificates --disablerepo=epel 

一旦证书被更新,你就可以正常使用 yum,即使是 epel repo 也能正常工作。如果您在不同的 repo 中遇到同样的错误,只需将它的名称放在 --disablerepo=<repo-name> 标志上。


注意:如果您不是root 用户,请使用sudo

【讨论】:

这对我来说是最好的答案:)【参考方案10】:

我通过这个解决方案解决了这个问题。

你只需在这个文件中更改 /etc/yum.repos.d/epel.repo

mirrorlist= 将此网址 https 更改为 http

baseurl= 把这个网址 https 改成 http

【讨论】:

【参考方案11】:

以上所有方法对我都不起作用,但是使用以下命令重建 rpm 数据库可以:

sudo rpm --rebuilddb

感谢大家的帮助。

【讨论】:

在执行此操作之前必须使用 baseurl 而不是 mirrorlist(已接受的答案)【参考方案12】:

对于无法访问互联网的盒子,您可以删除 epel 存储库:

yum remove epel-release --disablerepo=epel

这发生在我身上,因为我不小心在产品盒上使用 rpm 安装了 epel-release

【讨论】:

【参考方案13】:

即使 ca-certificates 软件包是最新的,我也遇到了同样的问题。镜像https://mirrors.fedoraproject.org/目前由DigiCert High Assurance EV Root CA签名,包含在我的ca-bundle

$ grep -A 3 "DigiCert High" /etc/ssl/certs/ca-bundle.crt 
# DigiCert High Assurance EV Root CA
-----BEGIN CERTIFICATE-----
MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3

在我的情况下,https 连接失败的原因是系统日期设置为 2002 年,其中DigiCert High Assurance EV Root CA (尚未)有效。

$ date
Di 1. Jan 11:10:35 CET 2002

更改系统时间解决了这个问题。

【讨论】:

非常感谢您的回答。你先生是个传奇【参考方案14】:

我通过进入 /etc/yum.repository.d/ 解决了这个问题。对于我的情况,我用 baseurl 注释掉镜像列表和取消注释条目。以及添加 sslverify=false。

https://serverfault.com/questions/637549/epel-repo-for-centos-6-causing-error

【讨论】:

不仅如此,还将 URL 更改为 archives.fedoraproject.org/pub/archive/fedora/linux/releases/…(对于 fedora.repo 和 fedora-updates.repo)。注意前面的“archives”和路径中的“pub/archive”) yum install -y yum-utils --disablerepo=epel && yum-config-manager --save --setopt=epel.sslverify=false【参考方案15】:

我已通过将 epel.repo 文件中的 https 条目更改为 http 来解决此问题。

【讨论】:

【参考方案16】:

我尝试了大多数这些解决方案,但没有一个对我有用。

唯一对我有用的是禁用并删除有问题的 repo。

sudo yum --disablerepo=epel\* remove epel-release.noarch

【讨论】:

【参考方案17】:

在我的情况下,当我注释掉 mirrorlist 时,错误消失了,但 repo 也没有工作,所以我手动在/etc/yum.repos.d/epel.repo 中指向正确的 baseurl,如下所示

[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=http://iad.mirror.rackspace.com/epel/7Server/x86_64/
#metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch&infra=$infra&content=$contentdir
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

[epel-debuginfo]
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
baseurl=http://iad.mirror.rackspace.com/epel/7Server/x86_64/debug/
#metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch&infra=$infra&content=$contentdir
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1

[epel-source]
name=Extra Packages for Enterprise Linux 7 - $basearch - Source
baseurl=http://iad.mirror.rackspace.com/epel/7Server/SRPMS/
#metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch&infra=$infra&content=$contentdir
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1

【讨论】:

【参考方案18】:

将镜像列表 URL 从 https 更改为 http 解决了我的问题。

【讨论】:

【参考方案19】:

这样修复我的:

yum install elfutils-default-yama-scope-0.168-8.el7.noarch --disablerepo=epel
yum install nss-pem -disablerepo=epel
yum reinstall ca-certificates --disablerepo=epel
yum clean all
rm -rf /var/cache/yum
yum update`

【讨论】:

【参考方案20】:

这些都不适合我(我什至没有尝试像手动编辑 repo 文件这样的技巧)。

但是在简单的yum update -y之后它就起作用了

【讨论】:

【参考方案21】:

另一个可能的原因是您的架构不受支持。我遇到了这个问题,因为我得到了一个 CentOS 虚拟机,想要安装 EPEL,但我终生无法完成。

原来虚拟机是 CentOS 7 i386,这是一种显然不再受 EPEL 支持的架构。我想在这种情况下唯一的补救办法是重新安装。

【讨论】:

【参考方案22】:

试试

yum clean all --enablerepo=*

然后

yum update --disablerepo=epel

【讨论】:

【参考方案23】:

对于过时的 CentOS 6,我在 /etc/yum.repos.d/epel.repo 中使用了它

baseurl=https://d2lzkl7pfhq30w.cloudfront.net/pub/archive/epel/6/$basearch

【讨论】:

【参考方案24】:

我在 Windows 10 上运行 Centos 7 virtualbox 虚拟机时遇到此错误。经过一番折腾后,我发现错误来自 yum 尝试使用 IPV6,因此我必须编辑 /etc/yum.conf 并添加:

ip_resolve = 4

我希望这可以帮助其他人在这个错误上花费的时间比我少!

【讨论】:

【参考方案25】:

首先,检查 /etc/yum.conf 中的“yum”配置 然后尝试上述提示:-)

【讨论】:

这没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review【参考方案26】:

我通过取消注释baseurl 并在/etc/yum.repos.d/epel.repo 中注释metalink 行解决了我的问题。

【讨论】:

以上是关于yum 错误“无法检索存储库的金属链接:epel。请验证其路径并重试”更新 ContextBroker的主要内容,如果未能解决你的问题,请参考以下文章

CentOS7配置错误,yum命令不能用,求好心人解答

yum install错误 系统环境:Oracle Linux5.4 在通过yum安装软件时出现以下错误:

CentOS7配置错误,yum命令不能用,求好心人解答

Linux yum提示Loaded plugins错误的解决方法

No module named yum错误的解决办法

yum源错误问题