报错解决——CentOS 7 yum无法使用解决方法

问题描述

最近复习Linux系统的时候使用Centos的yum下载插件是遇到这个常见的报错,按照之前的解决方法去修正,试过不少方法,都没有解决。

^CCould not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock er
14: curl#56 - "Callback aborted"
 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的话就需要按照这个方法优化设置yum配置文件了。

原因分析:

出现这个错误是因为你使用的 CentOS 7 仓库已经被归档,当前的镜像地址无法找到所需的文件。CentOS 7 的官方支持已经结束,部分仓库已被移至归档库。这导致了你的 yum 命令无法找到所需的元数据文件。CentOS 7 的官方仓库在 2024 年 6 月 30 日之后已经停止维护。因此,使用最新的 CentOS 7 官方仓库可能会遇到问题。

解决方案:

使用vi 或 vim 进入 /etc/yum.repos.d目录下找到CentOS-Base.repo编辑

cp  CentOS-Base.repo   CentOS-Base.repo.backup
#备份原文件
vi CentOS-Base.repo 
#进入目标文件

进入目标文件后将以下内容替换原文件内容:

# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#
 
[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
#baseurl=http://vault.centos.org/7.9.2009/x86_64/os/
baseurl=http://vault.centos.org/7.9.2009/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
 
#released updates 
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
#baseurl=http://vault.centos.org/7.9.2009/x86_64/os/
baseurl=http://vault.centos.org/7.9.2009/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
 
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#$baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
#baseurl=http://vault.centos.org/7.9.2009/x86_64/os/
baseurl=http://vault.centos.org/7.9.2009/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
 
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
#baseurl=http://vault.centos.org/7.9.2009/x86_64/os/
baseurl=http://vault.centos.org/7.9.2009/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

执行:wq保存并退出后,依次执行以下命令:

sudo yum clean all
#清理原有yum 缓存
sudo yum makecache
#重新生成yum 缓存
### 如何在 CentOS 7使用 `yum` 下载软件包 在 CentOS 7 上,`yum` 是一个强大的工具,用于管理和安装软件包。然而,在某些情况下可能会遇到无法正常工作的情况,比如新安装的系统缺少必要的配置文件或者网络源不可用等问题。 以下是关于如何正确设置和使用 `yum` 来下载软件包的具体说明: #### 配置 YUM 源 当刚安装的系统无法正常使用 `yum` 命令时,通常是因为默认的 YUM 源未被正确初始化或存在连接问题。可以通过替换官方镜像为国内更稳定的镜像来解决问题[^1]。具体操作如下: 1. **备份原始 YUM 源** 将现有的 `/etc/yum.repos.d/CentOS-Base.repo` 文件重命名为 `.backup` 扩展名以便保留原状。 ```bash mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup ``` 2. **下载新的 YUM 源** 使用 `wget` 工具从阿里云或其他稳定服务器获取最新的 YUM 源配置文件。 如果当前环境中尚未安装 `wget`,可以尝试通过其他方式手动上传该文件到目标机器上。 ```bash wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo ``` 3. **清理并重新构建缓存** 完成上述更改之后,执行以下两条命令清除现有缓存数据,并创建一个新的元数据库供后续查询使用。 ```bash yum clean all yum makecache ``` 4. **启用 EPEL 软件仓库(可选)** 对于一些非核心功能的应用程序来说,默认的基础库可能并不包含这些扩展组件。此时就需要额外引入外部支持——即 Extended Packages for Enterprise Linux (EPEL)[^4]。 ```bash yum install epel-release ``` #### 实际应用案例:安装 Htop 假设现在想要利用刚刚调整完毕后的环境去部署一款名为 `htop` 的进程监控器,则只需简单输入下面这串语句即可完成整个流程: ```bash yum install htop ``` 如果之前已经按照前述指导完成了所有前置准备工作的话,那么这里应该不会再报错提示找不到对应资源之类的异常状况了。 --- ### 注意事项 尽管以上方法能够有效解决大部分场景下的基础需求,但在实际操作过程中仍需注意几个常见陷阱: - 确认互联网接入状态良好; - 根据实际情况选用恰当版本号匹配的目标地址链接; - 不要轻易修改除指定范围外的内容以免引起不必要的连锁反应; ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牛逼的路上跑了一半

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值