使用 CentOS 8。
我想强制dnf
只在某个位置附近使用镜子,而不必手动维护所需镜子的列表。所以我想修改/etc/yum.repo.d/
.
举/etc/yum.repo.d/CentOS-Linux-BaseOS.repo
个例子,这是它的默认状态:
[baseos]
name=CentOS Linux $releasever - BaseOS
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=BaseOS&infra=$infra
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
我想知道查询时是否有一个参数mirrorlist.centos.org
可以指定按位置过滤,如下所示:
mirrorlist=http://mirrorlist.centos.org/?country=us&other-params-ommitted
(country=
我试过了,什么也没做)
我在该网站的 API 上找不到任何相关文档。
答案1
因此,在发布这个问题之前,我进行了更深入的研究,并自己得到了答案,所以就在这里。
我搜索“Centos镜像列表API”并找到了Web服务的代码存储库。我深入研究了它的来源并找到了这段代码这里:
ip=request.remote_route[-1]
cc=request.query.cc
debug=request.query.debug
remote_ip = ipaddr.IPAddress(ip)
mirrorlistpage = "https://www.centos.org/download/mirrors/"
if branch == "altarch":
mirrorlistpage = "https://www.centos.org/download/altarch-mirrors/"
region = None
if len(cc) == 5 and cc[2:3] == "-":
country = cc[:2]
region = cc[3:]
elif len(cc) > 0:
country = cc
else:
try:
country = geodb.city(ip).country.iso_code.lower()
if country == 'us' or country == 'ca':
try:
region = geodb.city(ip).subdivisions.most_specific.iso_code
except:
pass
except:
country = 'fallback'
看起来参数只是cc
.我使用以下 URL 进行了测试,确实得到了我想要的镜像:
- http://mirrorlist.centos.org/?release=8&arch=x86_64&repo=BaseOS&cc=us
- http://mirrorlist.centos.org/?release=8&arch=x86_64&repo=BaseOS&cc=cn
编辑
原来我居然看错文件了,有点尴尬