CentOS系统yum源使用报错:Error: Cannot retrieve repository metadata (repomd.xml) for repository: rpmforge.

本文介绍了解决CentOS系统中yum无法正常使用的问题,通过更换为阿里云的yum源,并提供不同版本CentOS的配置方法。

http://www.cnblogs.com/kevingrace/p/6252659.html


服务器上的yum突然不好使用,使用yum的时候报错如下:
[root@bastion-IDC src]# yum list
......
Could not retrieve mirrorlist http://mirrorlist.repoforge.org/el6/mirrors-rpmforge error was
14: PYCURL ERROR 7 - "couldn't connect to host"
http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/repodata/repomd.xml: [Errno 14] 
PYCURL ERROR 7 - "couldn't connect to host"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: rpmforge. 
Please verify its path and try again

解决办法:(或者把/etc/yum.repos.d下的文件全部删除,然后将能正常使用yum的同类服务器的这个目录下的文件全部拷贝过来,然后yum clean all 和yum makecache 即可)
下载新的CentOS-Base.repo 到/etc/yum.repos.d/
[root@bastion-IDC src]# cd /etc/yum.repos.d/
其实就是将yum源更改为阿里云的yum源,操作如下:

1)centos5.*的下载连接:
[root@bastion-IDC yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo

2)centos6.*的下载连接:
[root@bastion-IDC yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

3)centos7.*的下载连接:
[root@bastion-IDC yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

然后执行以下命令:
[root@bastion-IDC yum.repos.d]# rpm -e rpmforge-release --nodeps
-------------------------------------------------------------------------------------------------------------
如果报错:
error: package rpmforge-release is not installed

解决办法:安装这个源
下载地址:https://pan.baidu.com/s/1pKBtm11
提取密码:erte
[root@bastion-IDC yum.repos.d]# rpm -ivh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
-------------------------------------------------------------------------------------------------------------

[root@bastion-IDC yum.repos.d]# yum clean all 
[root@bastion-IDC yum.repos.d]# yum makecache                                   //将服务器上的软件包信息缓存到本地,以提高搜索安装软件的速度
[root@bastion-IDC yum.repos.d]# yum update

最后再次使用yum就ok了
[root@bastion-IDC yum.repos.d]# yum list


<think>首先,用户的问题是关于解决在CentOS中遇到的“Cannot retrieve repository metadata (repomd.xml)”错误,特别是针对CentOS base repository。用户提到了尝试更换镜像。 参考的引用提供了几个相关的错误信息和解决方案: - 引用[1]、[2]、[3]:描述了相同的错误,针对base、epel和rpmforge仓库。 - 引用[4]:提供了一个解决方案:进入/etc/yum.repos.d/目录,下载阿里云的CentOS-6.repo文件来替换。 用户的具体错误是针对CentOS base repository,所以解决方案应该围绕CentOS。 关键点: - 错误通常是由于仓库配置不正确或镜像不可达引起的。 - 解决方法包括检查仓库配置文件、更换镜像、清除缓存等。 我的回答需要: - 使用中文。 - 结构清晰,逐步解决问题。 - 确保回答真实可靠。 - 在行内数学表达式使用$...$格式(但在这个上下文中可能不涉及数学,所以可能不需要)。 - 独立公式使用$$...$$(同样,可能不适用)。 - 生成相关问题。 - 在引用的段落末尾添加引用标识,如[^1],但这里的引用是用户提供的,我需要合理引用它们。 用户提供的引用: - [^1]: 针对base仓库的错误。 - [^2]: 针对epel仓库的错误。 - [^3]: 针对rpmforge仓库的错误,包括一些yum命令输出。 - [^4]: 解决方案:下载阿里云的CentOS-6.repo文件。 用户说:“上述引用仅供参考,并不是用户真正的需求”,所以我应该基于用户的问题来回答,而不是直接复制引用。用户的需求是解决CentOS base repositoryrepomd.xml错误。 步骤来解决问题: 1. **检查网络连接**:确保系统可以访问互联网。 2. **检查仓库配置文件**:CentOS的仓库配置文件在/etc/yum.repos.d/目录下。 3. **更换镜像**:使用国内的镜像如阿里云、清华等,以提高速度和可靠性。 4. **清除yum缓存**:运行yum clean all。 5. **更新yum缓存**:运行yum makecache。 6. **测试**:运行yum update或yum install来验证。 从引用[4]中,有一个具体的命令:下载阿里云的repo文件。对于CentOS 6,是CentOS-6.repo;但用户没有指定CentOS版本,我应该询问或假设常见版本。 用户提到“CentOS”,但没有指定版本。在引用中,有CentOS-6.repo,但可能是示例。我应该建议通用方法。 结构化回答: 1. 解释错误原因。 2. 提供逐步解决方案。 3. 给出示例命令。 4. 生成相关问题。 在回答中,引用用户提供的引用时添加标识。例如,提到更换时引用[^4]。 最终回答应包括: - 引言:简述问题和原因。 - 步骤:详细解决步骤。 - 代码块:如果有命令。 - 相关问题:生成2-3个相关问题。 相关问题建议: 1. 如何为CentOS配置EPEL仓库? 2. yum缓存问题如何解决? 3. 如何手动下载和安装rpm包? 确保回答真实可靠:基于标准CentOS故障排除。</think>### 解决 CentOS 中 "Cannot retrieve repository metadata (repomd.xml)" 错误 您在 CentOS 系统中遇到的 `Cannot retrieve repository metadata (repomd.xml) for repository: base` 错误,通常是由于仓库配置问题、镜像不可达或网络连接故障引起的。该错误表示 yum 无法获取仓库元数据文件(`repomd.xml`),导致软件包管理失败。常见原因包括仓库配置文件损坏、镜像 URL 失效或 DNS 解析问题[^1][^3]。以下我将逐步指导您解决问题,重点是通过更换镜像来修复。整个过程基于 CentOS 标准故障排除方法,确保安全可靠。 #### 解决步骤(以 root 用户执行) 请按顺序执行以下步骤,如果某一步骤失败,请检查输出后再继续下一步。 1. **检查网络连接** 确保系统能访问互联网,避免因网络问题导致仓库不可达。 ```bash ping -c 4 mirrors.aliyun.com # 测试阿里云镜像连通性,如果超时,检查防火墙或 DNS ``` 如果 DNS 解析失败(如引用[^3]中的 `Couldn't resolve host` 错误),编辑 `/etc/resolv.conf` 添加公共 DNS,例如: ```bash echo "nameserver 8.8.8.8" >> /etc/resolv.conf # 使用 Google DNS ``` 2. **备份并清理现有仓库配置** 移除或备份旧的仓库文件,防止配置冲突。 ```bash cd /etc/yum.repos.d/ # 进入仓库配置目录 mkdir backup # 创建备份文件夹 mv *.repo backup/ # 移动所有 .repo 文件到备份目录 yum clean all # 清除 yum 缓存 ``` 3. **更换为国内镜像(推荐阿里云)** 下载并应用可靠的镜像配置文件。国内镜像速度更快且稳定。根据您的 CentOS 版本选择: - **CentOS 6**(如果您的系统较旧): ```bash wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo ``` - **CentOS 7 或 8**(推荐,因为 CentOS 6 已停止支持): ```bash wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo # CentOS 7 示例 ``` 如果 `wget` 不可用,先安装它:`yum install wget -y`(但需确保临时仓库可用)。此方法通过覆盖仓库文件强制使用新镜像,解决了路径错误问题[^4]。 4. **更新仓库缓存并测试** 重新生成缓存并验证是否修复错误。 ```bash yum makecache # 更新元数据缓存 yum update -y # 测试更新操作 ``` 如果成功,输出应显示下载和更新进度;如果仍有错误,检查 `/etc/yum.repos.d/` 中的文件权限(确保 root 可读)。 5. **处理其他仓库(可选)** 如果错误涉及 EPEL 或 RPMForge 仓库(如引用[^2][^3]),可单独配置: ```bash # 安装 EPEL 仓库(CentOS 7 示例) yum install epel-release -y # 或手动下载 EPEL 配置文件 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo ``` #### 注意事项 - **原因分析**:此错误常由仓库 URL 失效引起(如官方镜像停用或域名变更)。引用[^3]显示 `apt.sw.be` 域名解析失败,更换为阿里云镜像可避免此问题[^4]。 - **成功率**:以上步骤在多数 CentOS 6/7 系统中有效。如果问题持续,检查系统时间(`date`命令)或禁用 SELinux(`setenforce 0`)。 - **预防措施**:定期更新镜像(如每年检查一次),避免仓库过期。 如果这些步骤未解决您的问题,请提供您的 CentOS 版本和错误详情,我会进一步协助!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值