【openEuler】解决“openeuler failed to download metadata for repo ‘OS’ ”相关问题

目录

一、问题简述

二、问题分析

三、问题解决


一、问题简述

今天在使用刚刚安装的openEuler平台debug代码时发现没有安装gdb工具,欲使用命令

yum install gdb

安装,然不幸报错。

有这种的:

openeuler failed to download metadata for repo 'OS'

还有这种的:

令人眼花缭乱,且很快发现不只是针对gdb,安装所有的软件包都会返回同样的错误信息。悠悠苍天,此何错哉!我的debug之路,还没开始就已然结束了?

别急,先读读报错再说。

二、问题分析

分析错误信息,错误原因在于无法连接到服务器下载repomd.xml文件。尝试搜索openEuler, repodata, repomd.xml等关键词后,可以找到网站dl-cdn.openeuler.openatom.cn

嗯?出现了报错信息里面的repo,可能是这里!但是版本众多,我的是哪一个呢?

两个方法!法一比较懒,谜底就在谜面上,报错信息中的“openEuler-24.03-LTS-SP1”即是当前openEuler的版本号。如果不放心可以采用更通用的法二,一行命令搞定:

cat /etc/os-release

效果如下,在VERSION一行就可以看到,与我们刚才的偷懒法得出的结论一致。

进入对应版本的资源库之后,就能发现许多错误信息里熟悉的面孔:OS、EPOL、source……我们甚至能对照着报错里下载路径的后半部分按图索骥,找到日思夜想的repomd.xml。

其实到这儿看一下URL,问题就柳暗花明了!曾经资源库的URL已被更新,但是下载的openEuler镜像里面的资源下载源并没有更新——源都是被废弃的,配置文件当然也就无从下载。

找到问题关键所在,解决起来就易如反掌了!

三、问题解决

解决此问题,只办三件事:换源!换源!还是换源!

安装时使用的是yum指令,因此我们要进入存放下载源URL的路径,查看一下里面有什么:

cd /etc/yum.repo.d
ls

在我的平台上出现了两个文件:

好嘛,看这被废弃的“repo.open.org”我就知道我找对地儿了。那接下来便是大刀阔斧地改!

首先来第一个文件:

vi openEuler.repo

进入之后按下I键开始编辑。这份文件改成下面的样子就行,重点关注所有的baseurl和gpgkey(其余项我给删除了但貌似没什么影响,不放心可以先只改baseurl和gpgkey试试)。

这里提一句,$basearch指的是系统硬件架构(CPU指令集),可以通过在命令行输入arch查看。我的平台是x86_64,改的时候对照着刚刚找的官网资源库的路径看看,也刚好能对上。所以我们实际要动的就是路径版本号之前的部分(下图红框部分)。改动完毕之后按下esc,再输入:wq即可。

同样的方法我们进入另一份文件修改(输入文件名时直接输入repo后按下Tab键补全即可):

vi repo.openeuler.org_openeuler-24.03-LTS-SP1_OS_x86_64.repo

进去之后同样的操作修改成下面的模样,注意修改完成后还是别忘了先esc再:wq保存退出。

至此,我们的问题就得到解决啦!不放心?没关系,我们安装一个zsh包测试一下换源结果,输入命令:

yum install zsh

意料之中的结果:

大功告成!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值