pwstudio:qa:q103
q103 centos 7.9 换源
symptom 现象
在 CentOS 7.9 上执行安装依赖包的命令(比如安装 NVIDIA 驱动依赖)时,如果看到类似下面的报错,提示连不上 mirrorlist.centos.org:
[lxkt@localhost ~]$ sudo yum install -y gcc kernel-devel-$(uname -r) kernel-headers-$(uname -r) Loaded plugins: fastestmirror Determining fastest mirrors Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was 14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error" One of the configured repositories failed (Unknown), and yum doesn't have enough cached data to continue. At this point the only safe thing yum can do is fail. There are a few ways to work "fix" this: 1. Contact the upstream for the repository and get them to fix the problem. 2. Reconfigure the baseurl/etc. for the repository, to point to a working upstream. This is most often useful if you are using a newer distribution release than is supported by the repository (and the packages for the previous distribution release still work). 3. Run the command with the repository temporarily disabled yum --disablerepo=<repoid> ... 4. Disable the repository permanently, so yum won't use it by default. Yum will then just ignore the repository until you permanently enable it again or use --enablerepo for temporary usage: yum-config-manager --disable <repoid> or subscription-manager repos --disable=<repoid> 5. Configure the failing repository to be skipped, if it is unavailable. Note that yum will try to contact the repo. when it runs most commands, so will have to try and fail each time (and thus. yum will be be much slower). If it is a very temporary problem though, this is often a nice compromise: yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true Cannot find a valid baseurl for repo: base/7/x86_64
(这一大段报错不需要逐字看懂,只要看到关键字 mirrorlist.centos.org 或者 “Cannot find a valid baseurl” 就可以判断是本篇说的这个问题。上面示例里 [lxkt@localhost ~]$ 中的 lxkt 是这台示例机器的用户名,跟报错原因无关,你机器上的用户名可能不一样,这是正常的。)
原因
centos 7 官方不再维护, 源不可用
解决方案
依次执行下面的命令(建议从头到尾整段复制粘贴,包括中间的 sudo tee … EOF 那一整块,不要拆开分段执行):
sudo mkdir /etc/yum.repos.d/bak sudo mv /etc/yum.repos.d/CentOS-*.repo /etc/yum.repos.d/bak/ sudo tee /etc/yum.repos.d/CentOS-Base.repo > /dev/null <<'EOF' [base] name=CentOS-$releasever - Base baseurl=http://mirrors.aliyun.com/centos-vault/7.9.2009/os/$basearch/ gpgcheck=1 gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-7 enabled=1 [updates] name=CentOS-$releasever - Updates baseurl=http://mirrors.aliyun.com/centos-vault/7.9.2009/updates/$basearch/ gpgcheck=1 gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-7 enabled=1 [extras] name=CentOS-$releasever - Extras baseurl=http://mirrors.aliyun.com/centos-vault/7.9.2009/extras/$basearch/ gpgcheck=1 gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-7 enabled=1 EOF
执行完成后(没有报错的话不会有太多输出),重新执行之前报错的那条 yum install 命令,正常就能成功了。
pwstudio/qa/q103.txt · 最后更改: 2026/07/28 03:17 由 127.0.0.1
