解决CentOS 7 Yum仓库失效问题

解决CentOS 7 Yum仓库失效问题:切换至Vault仓库

问题背景

最近在CentOS 7系统中使用yum安装软件时,遇到了以下错误:

[root@master ~]# yum install -y gcc tcl
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
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; 未知的错误"


 One of the configured repositories failed (未知),
 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

这是由于CentOS 7已于2024年6月30日停止维护(EOL),官方关闭了默认的镜像源,导致yum无法正常访问仓库。


解决方案

为了解决这个问题,我们可以将Yum仓库切换至CentOS的Vault仓库,这是一个归档仓库,包含了CentOS 7的所有历史版本。

以下是详细步骤:


一、备份原配置文件

在修改配置文件之前,建议先备份,以防操作失误导致系统无法恢复。

sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

验证备份是否成功

ls /etc/yum.repos.d/

如果看到CentOS-Base.repo.bak文件,说明备份成功。


二、编辑仓库配置文件

使用vivim编辑器修改仓库配置文件:

sudo vi /etc/yum.repos.d/CentOS-Base.repo

修改内容

  1. 找到[base][updates]等仓库区块。
  2. 将原有的baseurl替换为:
    baseurl=http://vault.centos.org/7.9.2009/os/$basearch/
    
  3. 注释掉mirrorlist=开头的行(在行首添加#):
    #mirrorlist=http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os
    
  4. 确保gpgcheck=1gpgkey路径正确:
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    

保存并退出

  1. Esc键退出编辑模式。
  2. 输入:wq,然后按Enter保存并退出。

三、刷新Yum缓存

修改配置文件后,需要刷新Yum缓存以使新配置生效:

sudo yum clean all && sudo yum makecache

解释
yum clean all:清除所有缓存(包括软件包元数据和旧的下载文件)。
yum makecache:从新仓库下载元数据并建立缓存索引。

验证缓存是否成功
如果看到以下输出,说明缓存重建成功:

Metadata cache created

四、验证与故障排查

  1. 测试安装

    sudo yum install vim
    

    观察是否能正常下载和安装软件包。

  2. 网络检查

    ping vault.centos.org
    

    确保服务器能够访问Vault仓库的域名。

  3. 配置检查

    cat /etc/yum.repos.d/CentOS-Base.repo | grep vault
    

    查看是否成功替换为Vault地址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值