yum更新失败:错误:无法检索存储库的存储库元数据(repomd.xml)…


34

我正在使用CentOS 6.3。当我尝试用yum更新系统时,出现以下消息:

yum update

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.ircam.fr
 * centosplus: miroir.univ-paris13.fr
 * extras: mirrors.ircam.fr
 * update: centos.quelquesmots.fr
http://mirror.centos.org/centos/6/addons/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: addons. Please verify its path and try again

yum clean all

Loaded plugins: fastestmirror
Cleaning repos: CactiEZ addons base centosplus extras pgdg93 update
Cleaning up Everything
Cleaning up list of fastest mirrors

yum check

Loaded plugins: fastestmirror
check all

yum erase apf

Loaded plugins: fastestmirror
Setting up Remove Process
No Match for argument: apf
Determining fastest mirrors
 * base: centos.mirror.fr.planethoster.net
 * centosplus: centos.mirror.fr.planethoster.net
 * extras: mirrors.ircam.fr
 * update: centos.quelquesmots.fr
CactiEZ                                                | 2.9 kB     00:00
CactiEZ/primary_db                                     |  13 kB     00:00
http://mirror.centos.org/centos/6/addons/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: addons. Please verify its path and try again

yum upgrade

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.mirror.fr.planethoster.net
 * centosplus: centos.mirror.fr.planethoster.net
 * extras: mirrors.ircam.fr
 * update: centos.quelquesmots.fr
http://mirror.centos.org/centos/6/addons/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: addons. Please verify its path and try again

我的yum.conf

[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release

1
从昨天开始,您问了很多有关yum Internet连接错误和路径问题的问题,您是否刚刚考虑过重新安装系统?f $$$ ed看起来很漂亮
Kiwy 2014年

您需要先修复Internet连接。重新安装可能是一种选择。或尝试启动实时CD系统。
彼得2014年

我通过删除“ yum.repos.d”文件夹并重新创建了example.repo文件来解决该问题。从此处添加回购详细信息:linuxquestions.org/questions/linux-newbie-8/…–
Yang

Answers:


33

您的ca-bundles.crt太旧了。在升级到新版本的CentOS之前,一种解决方法是将epel.repo从使用https更改为http

sudo sed -i 's/https/http/g' /etc/yum.repos.d/epel.repo

2
+1点上。但是您不需要升级 CentOS即可获取最新的证书包(因为CentOS的长期支持)。yum update ca-certificates应该可以解决问题(在禁用https进行epel或直接获取rpm并使用rpm更新之后)。
凯夫

@kev从理论上讲,您的评论应该有用,但是当我问yum to update ca-certificates“没有标记为Updates的软件包”时,对我来说可悲。实际上,当我执行yum list | grep ca-certificates操作时,会在我的CentOS 6.4机器上获得此ca-certificates.noarch 2010.63-3.el6_1.5作为最新版本。在我的CentOS 6.5机器上,我得到ca-certificates.noarch 2014.1.98-65.1.el6,所以看来您至少需要更新到CentOS 6.5才能从CentOS获得最新的CA-Ceritifcate,或者手动获取rpm并进行安装。
RobertDeRose 2014年

@Kev Rob钉牢了它。许多企业业务仍处于非常古老的发行版中。我目前正在为客户端开发CentOS4.5,并且必须做很多通常不应该做的事情。
SgtPooki 2015年

@RobD好像OP正在使用http,而当我遇到相同的问题时,我也正在使用http而不是https。所以我很好奇,您如何推断ssl ca根证书过时是根本原因?
德怀特·斯潘塞

@DwightSpencer对不起,我不明白您的问题,什么是OP?我推断出我的ssl ca根证书是问题,因为在旧的CentOS 6.2盒上我无法更新,但在6.6盒上我可以更新。只需将https更改为http就可以解决此问题。我或多或少只是将其范围缩小了。
RobertDeRose

16

试试这个(必须是root)

yum clean all
yum check
yum erase apf
yum update ca-certificates
yum upgrade

查看编辑
2014年

好极了!它起作用了:)
facundofarias

1
完美地工作,并且比该线程上的其他答案更干净。
德怀特·斯潘塞

我必须在其中添加yum update --disableplugin fastestmirror通行证,因为其中一个步骤(可能是yum clean)删除了联系镜子所需的信息。当它提出进行升级时,我告诉它“不”,然后做了一个简单的尝试yum update,这次成功了。我相信第一遍使它能够从CentOS主站点下载新的镜像列表,这使第二遍成功了。
沃伦·杨


3

对我来说,问题是存储库使用https,但无法正常工作。

cd /etc/yum.repos.d/
grep -RFi "https" *

这显示了在哪些回购文件中使用了https。在编辑器中打开它们,并将其设置为http。对我来说,解决了这个问题。


3

先前的所有答案均不适用于我,但运行以下命令可以:

$ sudo yum remove centos-release-SCL
$ sudo yum update # Update to CentOS 6.8
$ sudo yum install centos-release-scl
$ sudo yum update

我从这篇博客文章中得到



2

如果您使用6.5,我不知道为什么,但是在centOS的官方yum存储库中不存在6.5目录。所有软件包将返回404状态代码

如果您尝试这样做:http : //mirror.centos.org/centos/ 6.5 /os/x86_64/Packages/php-pear-1.9.4-4.el6.noarch.rpm您将得到一个404,但如果尝试6.6版本:http : //mirror.centos.org/centos/ 6.6 /os/x86_64/Packages/php-pear-1.9.4-4.el6.noarch.rpm可以正常工作。


1

如果您在没有任何其他参数的情况下运行“ yum update”或“ yum upgrade”,则系统上的所有软件包(包括yum)都将被升级,因此,除非您要升级Fedora或CentOS版本,否则实际上不需要自己升级yum。


实际上我需要安装ftp。但是当我使用yum install ftp时,我遇到了同样的问题。
2014年

1

我通过Vagrant安装了CentOS,它随附的/etc/yum.repos.d/目录中预先填充了puppet.repo。瞧瞧,puppet.repo其他包含的回购都没有指向有效资源。

所以我删除了它们,yum现在可以工作了。


1

在我的情况下(这确实是例外),包含回购信息的XML文件的位置已更改。

  • 我有互联网连接(ping 8.8.8.8有效)
  • 当我运行时yum upgrade,经过很多404错误,我可以获取必须下载的程序包的名称,但无法下载它们。

而且,当我浏览第一个404存储库URL时,它是:

http://mirror.airenetworks.es/CentOS/7.4.1708/os/x86_64/repodata/repomd.xml

我发现它不存在。转到其父文件夹,http://mirror.airenetworks.es/CentOS/7.4.1708/readme我得到这个:

不推荐使用此目录(和CentOS版本)。对于普通用户,您应该在路径中使用/ 7 /而不是/7.4.1708/。请参阅以下有关CentOS发行方案的常见问题解答:

https://wiki.centos.org/FAQ/常规

如果您知道自己在做什么,并且绝对希望保持在7.4.1708水平,请访问http://vault.centos.org/获取软件包。

请记住,7.4.1708不再获得任何更新,也没有任何安全修复程序。

因此,我必须返回/etc/yum.repo.d编辑文件。

我有:

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

我怀疑$releasever是不再使用,所以我可以通过它改变测试7:(记得要逃跑&\

curl http://mirrorlist.centos.org/?release=7\&arch=x86_64\&repo=os\&infra=arch

我们可以获得文件列表:

ftp://ftp.cesca.cat/centos/7.5.1804/os/x86_64/
http://ftp.rediris.es/mirror/CentOS/7.5.1804/os/x86_64/
http://ftp.cica.es/CentOS/7.5.1804/os/x86_64/
http://centos.mirror.minorisa.net/7.5.1804/os/x86_64/
http://repo.nixval.com/CentOS/7.5.1804/os/x86_64/
http://centos.uvigo.es/7.5.1804/os/x86_64/
http://ftp.uma.es/mirror/CentOS/7.5.1804/os/x86_64/
http://ftp.cixug.es/CentOS/7.5.1804/os/x86_64/
http://mirror.airenetworks.es/CentOS/7.5.1804/os/x86_64/
http://mirror.gadix.com/centos/7.5.1804/os/x86_64/

因此,我们可以这样设置变量:

  1. 打开 /etc/yum.repo.d/CentOS-Base.repo
  2. 在该[base]部分中,定义:releasever=7
  3. 重新运行yum upgradeyum install xxx
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.