时间:2022.3.30
原因
由于centos官方源不用了,导致阿里老镜像源也出问题,这里需要根据阿里官方提供的切换成他们备份的源方能解决此问题。
解决方案
运行以下命令备份之前的repo文件。
rename '.repo' '.repo.bak' /etc/yum.repos.d/*.repo
运行以下命令下载最新的repo文件。
wget https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo -O /etc/yum.repos.d/Centos-vault-8.5.2111.repo
如果后期 yum clean all && yum makecache报错下载xml文件404,则不需要执行这一句:
wget https://mirrors.aliyun.com/repo/epel-archive-8.repo -O /etc/yum.repos.d/epel-archive-8.repo
运行以下命令替换repo文件中的链接:
sed -i 's/mirrors.cloud.aliyuncs.com/url_tmp/g' /etc/yum.repos.d/Centos-vault-8.5.2111.repo && sed -i 's/mirrors.aliyun.com/mirrors.cloud.aliyuncs.com/g' /etc/yum.repos.d/Centos-vault-8.5.2111.repo && sed -i 's/url_tmp/mirrors.aliyun.com/g' /etc/yum.repos.d/Centos-vault-8.5.2111.repo
如果后期 yum clean all && yum makecache报错下载xml文件404,则不需要执行这一句:
sed -i 's/mirrors.aliyun.com/mirrors.cloud.aliyuncs.com/g' /etc/yum.repos.d/epel-archive-8.repo
运行以下命令重新创建缓存。
yum clean all && yum makecache
yum源和epel源切换完成。
之后更新源:
yum update
yum upgrade
如果 yum upgrade 报错:
Cannot prepare internal mirrorlist: No URLs in mirrorlist
需要在/etc/yum.repos.d中更新一下源,使用vault.centos.org代替mirror.centos.org:
sudo sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" /etc/yum.repos.d/CentOS-*
之后就可以 yum upgrade 更新软件包文件。