「YUM」- 禁用 mirrorlist、metalink 检查 @20210207

问题描述

当我们使用 YUM 安装应用时,它会检查 mirrorlist、metalink 配置,以获取速度最快的第三方镜像站点。

但是,第三方镜像站点并不总是可靠,有时会返回各种错误,比如下面这些错误:

在 CentOS release 6.5 (Final) 中,安装 epel-release 仓库后,执行 yum makecache 命令会产生如下错误:

Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again

在 CentOS Linux release 7.4 上,执行命令 yum install transmission-cli 产生如下错误:

...
https://mirrors.sonic.net/epel/7/x86_64/repodata/repomd.xml: [Errno -1] repomd.xml does not match metalink for epel
https://dfw.mirror.rackspace.com/epel/7/x86_64/repodata/repomd.xml: [Errno -1] repomd.xml does not match metalink for epel
https://d2lzkl7pfhq30w.cloudfront.net/pub/epel/7/x86_64/repodata/repomd.xml: [Errno -1] repomd.xml does not match metalink for epel
https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/repodata/repomd.xml: [Errno -1] repomd.xml does not match metalink for epel
...

在 CentOS Linux release 7.5 上,执行命令 yum install sysstat 产生如下错误:

...
http://mirrors.neusoft.edu.cn/centos/7.5.1804/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found
Trying other mirror.
http://mirrors.zju.edu.cn/centos/7.5.1804/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found
Trying other mirror.
http://mirrors.nwsuaf.edu.cn/centos/7.5.1804/os/x86_64/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found
...

问题原因

这些问题多半是因为第三方镜像站点导致的,比如:站点无法访问;无法取回元信息;数据存在问题

解决办法

官方仓库是可靠的,我们会直接使用官方仓库。需要修改 /etc/yum.repos.d/epel.repo 文件:

# 备份
cp -drv /etc/yum.repos.d /etc/yum.repos.d.backup.$(date '+%Y%m%d')

# 注释 mirrorlist=、metalink= 行,启用 baseurl= 行
for i in $(find /etc/yum.repos.d/ -type f -name '*.repo')
do
	echo "# filename: $i"
	sed -E -i 's/^mirrorlist=/# mirrorlist=/' "$i"
	sed -E -i 's/^metalink=/# metalink=/' "$i"
	sed -E -i 's/^#\s*baseurl=/baseurl=/' "$i"
done

附加说明

如果要单独禁用某给镜像站点,可以使用 [main] 的 exclude 参数,详细参考 man 5 yum.conf 手册。

参考文献

yum error “Cannot retrieve metalink for repository: epel. Please verify its path and try again” updating ContextBroker
disable YUM mirrorlist checking
CENTOS 6.6 “Errno -1 repomd.xml does not match metalink for updates ” when trying to use yum command to install openssl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值