最近在学习Linux的时候遇到以下一个错误,就是在使用yum命令进行下载的时候会出现这个错误,一番百度之后,找到一些解决方案,关于检查网络连接、关闭防火墙、更改镜像等,但是这些对我都没什么用;最恶心的是找到的净是一些粘贴复制的文章,浪费时间不说还解决不了问题;最后不得已只能自己尝试,最终解决问题。
先说解决方案:
使用root权限,找到/etc/yum.repos.d这个文件夹,里面有三个重要的文件
CentOS-Linux-AppStream.repo
CentOS-Linux-baseOS.repo
CentOS-Linux-Extras.repo
为了防止操作失误导致文件不可用,可以先进行备份
cp CentOS-Linux-AppStream.repo CentOS-Linux-AppStream.repo.backup
cp CentOS-Linux-baseOS.repo CentOS-Linux-baseOS.repo.backup
cp CentOS-Linux-Extras.repo CentOS-Linux-Extras.repo.backup
然后使用vim命令分别打开这三个文件,将其中的mirrorlist注释掉,将baseurl放开,并分别将这三个文件的baseurl的值改为
baseurl=https://mirrors.aliyun.com/centos/8-stream/AppStream/$basearch/os/
baseurl=https://mirrors.aliyun.com/centos/8-stream/baseOS/$basearch/os/
baseurl=https://mirrors.aliyun.com/centos/8-stream/extras/$basearch/os/
做完这些你就会发现yum命令可以用了,就是这么简单
然后来说一下原因:
在解决问题前需要确定你的网络连接真的没问题,当网络连接不上时,也会出现问题,检查网络是否连接成功,可以ping一下百度的网站
ping baidu.com
能够ping通说明网络没问题(你甚至可以去ping一下报错信息后面的那个ip)。那么就正式来说一下出现这个问题的原因,
当你闲来无事时,如果你去访问报错信息中的那个地址,就会发现这个地址是一个错误地址,这也是为什么会报404的原因,但是,如果你将这个请求地址一级一级地从后往前删除,挨个访问,你最终能够在http://mirrors.aliyun.com/centos/8/,这个地址下访问到页面,这时你会惊奇的发现,在页面提供的资源目录中根本没有我们上面提到的三个重要文件相关的目录,也就更不可能从目录中下载配置文件,所以这也是为什么会出现文章开始的那个错误原因
其实这个目录已经被弃用了,在这个地址的目录中有一个文件readme,里面只有一句话
This directory (and version of CentOS) is deprecated、// 此目录(以及CentOS版本)已被弃用。
但是,弃用了也没完全弃用,我们将这个地址再删除一级,就会发现,其实CentOS 8的镜像版本有很多,其中绝大部分都弃用了,只有8-stream这个版本还在更新使用
所以我们只需要将阿里默认镜像路径改到这个资源目录下即可,这样问题就完美解决了。
接着就可以生成缓存,然后使用了
yum clean all
yum makecache
最后,在阿里的官网中也有相关的配置,但是那个配置是有问题的。CentOS 8与以往版本有着很大差别,最明显的就是上面提到的三个重要配置文件,CentOS 8将这个三个配置拆分出来了,文件名也有所不同;但是阿里的那个配置仍将他们写在了一起,且文件名称也不对;不过大家也可以通过这篇文章尝试修该阿里提供的配置文件,尝试能否运行成功。
有关文章内容的问题欢迎大家指出来。