Oracle Linux yum源错误: [Errno 14] HTTP Error 404 - Not Found($releasever变量错误)

本文详细介绍了在CentOS系统中配置阿里云镜像源过程中遇到的HTTP 404错误,并提供了有效的解决方案。通过调整$releasever变量,确保了YUM源正确指向阿里云镜像,最终实现了系统的顺利更新。
配置阿里源:
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache
报错:

http://mirrors.aliyun.com/centos/7Server/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found

解决:

在阿里源的官方网站找,发现正确的路径应该是: http://mirrors.aliyun.com/centos/7/os/x86_64/repodata/
查看阿里的源的文件CentOS-Base.repo,发现链接的定义是: http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
判断应该是在Oracle Linux中$releasever的定义有问题,没找到具体哪里设置的这个变量,
Redhat的官方文档中找到修改$releasever变量的方法:echo "7" > /etc/yum/vars/releasever

结果:

yum makecache
yum update -y
yum install epel-release -y
成功执行

<think> 首先,用户的问题是关于CentOS系统使用fastestmirror插件时,访问华为云镜像出现HTTPS Error 404 - Not Found错误。具体URL是:https://repo.huaweicloud.com/centos/%24releasever/os/x86_64/repodata/repomd.xml。错误404 Not Found。 我需要回顾系统级指令: - 所有行内数学表达式使用$...$格式。 - 独立公式使用$$...$$格式并单独成段。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾自然地添加引用标识。 用户提供了几个引用: - [^1] 描述了类似错误,涉及404错误,建议将$releasever替换为具体版本号如7。 - [^2] 显示另一个404错误示例。 - [^3] 同[^1],建议修改CentOS-Base.repo文件。 - [^4] 提供了解决EPEL镜像404错误的方法,修改epel.repo文件。 用户的问题是特定的:fastestmirror插件访问华为云镜像出现404错误。fastestmirror插件是yum的一部分,用于选择最快的镜像。 关键点: - URL中包含%24releasever,这应该是$releasever的URL编码。在repo文件中,$releasever是一个变量,表示CentOS主版本号。 - 错误404表示文件不存在。可能的原因是华为云镜像没有对应CentOS版本的目录。 从引用[^1]中,解决方法是将$releasever替换为具体的版本号,如7,因为原CentOS 6的路径可能不再可用。 类似地,对于华为云镜像,我需要检查华为云是否支持特定的CentOS版本。 步骤: 1. 确认CentOS版本。 2. 修改repo文件,将$releasever替换为实际版本号。 3. 清除yum缓存并更新。 用户提到fastestmirror插件,但问题本质是镜像路径不正确导致404。 参考引用[^1]的解决方案: - 编辑repo文件,将$releasever替换为7(假设使用CentOS 7)。 - 然后运行yum clean all和yum makecache。 对于华为云镜像,URL是https://repo.huaweicloud.com/centos/%24releasever/os/x86_64/,其中%24releasever$releasever。 可能的解决方法: - 打开包含华为云的repo文件。 - 查找URL中的$releasever- 替换为具体的版本号,如7或8。 确认华为云是否有支持: - 华为云镜像https://repo.huaweicloud.com/centos/ - 浏览该链接,我应该检查是否有CentOS 7、8等目录。 - 例如,https://repo.huaweicloud.com/centos/7/os/x86_64/repodata/repomd.xml 应该存在。 在我的知识中,华为云提供CentOS镜像,但可能不支持某些旧版本。 在回答中: - 使用中文。 - 结构清晰。 - 引用相关引用。 - 生成相关问题。 回答结构: 1. **问题分析**:解释错误原因,404错误表示文件不存在,可能$releasever变量解析错误或路径不正确。 2. **解决方法**: - 编辑repo文件(如/etc/yum.repos.d/CentOS-Base.repo或特定文件)。 -$releasever替换为实际CentOS主版本号(如运行cat /etc/redhat-release获取)。 - 保存文件。 - 运行yum clean all && yum makecache。 3. **引用支持**:参考[^1]和[^3],它们有类似解决方法。 4. **验证**:建议检查华为云镜像是否支持该版本。 5. **相关问题**:生成三个相关问题。 生成相关问题: 1. 如何查找CentOS的当前版本号? 2. 如何禁用fastestmirror插件? 3. 华为云镜像支持哪些CentOS版本? 最后,确保语言自然,帮助用户逐步解决。 </think> ### 解决CentOS使用fastestmirror插件访问华为云镜像出现404错误的办法 当您在CentOS系统中使用fastestmirror插件访问华为云镜像(如https://repo.huaweicloud.com/centos/%24releasever/os/x86_64/repodata/repomd.xml)时遇到“HTTPS Error 404 - Not Found错误,这通常是由于镜像路径中的`$releasever`变量未能正确解析导致的。`$releasever`是Yum仓库文件中的一个变量,用于自动匹配CentOS主版本号(如7或8),但某些镜像(如华为云)可能不支持旧版本或变量解析错误,导致文件路径不存在[^1][^3]。以下是完整的解决方法,基于类似错误的处理经验(如引用[^1]和[^3])。 #### 步骤1: 确认问题原因 - **错误分析**:URL中的`%24releasever`是`$releasever`的URL编码形式。如果您的CentOS版本较旧(如6.x),华为云可能已不再维护该版本的镜像文件。或者,`fastestmirror`插件在解析变量时出错,访问了不存在的路径。 - **验证方法**:尝试直接在浏览器访问手动替换版本号的URL: - 对于CentOS 7:https://repo.huaweicloud.com/centos/7/os/x86_64/repodata/repomd.xml - 对于CentOS 8:https://repo.huaweicloud.com/centos/8/os/x86_64/repodata/repomd.xml 如果新URL能正常访问,说明原问题于`$releasever`变量解析错误或版本兼容性问题[^1][^3]。 #### 步骤2: 解决方法(编辑Yum仓库文件) 请按顺序执行以下命令(需要root权限): 1. **登录服务器并备份仓库文件**: ```bash ssh your_username@your_server_ip # 替换为您的服务器信息 sudo -i # 切换到root用户 cd /etc/yum.repos.d cp CentOS-Base.repo CentOS-Base.repo.bak # 备份文件,防止误操作 ``` 2. **编辑仓库文件并替换版本变量**: - 使用文本编辑器(如vi或nano)打开包含华为云镜像的仓库文件: ```bash vi CentOS-Base.repo # 或替换为其他自定义repo文件(如huawei.repo) ``` - 在文件中查找包含华为云镜像的URL(如`baseurl=https://repo.huaweicloud.com/centos/\$releasever/os/x86_64/`)。使用替换命令将所有`$releasever`改为实际版本号: - 对于CentOS 7: ```bash :%s/\$releasever/7/g # 在vi编辑器中执行,将变量替换为7 ``` - 对于CentOS 8: ```bash :%s/\$releasever/8/g # 将变量替换为8 ``` 保存并退出(在vi中:按`Esc`后输入`:wq`)。 - **注意**:如果您的repo文件中有多个镜像(如base、updates等),确保修改所有相关URL。华为云镜像通常定义在`[base]`或`[updates]`段落下[^1][^3]。 3. **清除缓存并重新生成**: ```bash yum clean all # 清除旧缓存 yum makecache # 重新生成元数据缓存 ``` 4. **验证修复**: - 运行更新测试: ```bash yum update # 检查是否不再报错 ``` - 如果仍报错,检查仓库文件是否包含多个`$releasever`实例,或尝试禁用`fastestmirror`插件临时测试: ```bash vi /etc/yum/pluginconf.d/fastestmirror.conf # 设置enabled=0 yum clean all && yum makecache ``` #### 步骤3: 其他注意事项 - **原因说明**:华为云镜像可能已停止维护旧版本(如CentOS 6),导致路径失效。直接替换为支持版本(如7或8)可解决404错误- **兼容性检查**:访问华为云官方镜像页面(https://repo.huaweicloud.com/centos/)确认支持的版本列表。当前主流支持CentOS 7和8。 - **引用支持**:此方法类似引用[^1]和[^3]的方案,将变量替换为固定版本号以避免解析失败[^1][^3]。 #### 常见问题 - **如果修改后仍报错**:确保yum仓库文件使用正确的协议(https而非http),并检查网络连接: ```bash ping repo.huaweicloud.com # 测试连通性 ``` - **升级系统**:如果使用CentOS 6,建议升级到CentOS 7或更高版本,因为EOL(生命周期结束)后镜像不再更新。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值