yum 安装软件报错Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&

问题:centos系统yum安装软件时报错:

Determining fastest mirrors Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=genclo error was 14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error"

通过更换yum源得以解决

备份当前yum源

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

下载新的CentOS-Base.repo 到/etc/yum.repos.d/

curl -/etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

如果还有下面的错误:

Cannot find a valid baseurl for repo: centos-sclo-rh/x86_64

Cannot find a valid baseurl for repo: centos-sclo-sclo/x86_64 

则需要将/etc/yum.repos.d/CentOS-SCLo-scl-rh.repo和/etc/yum.repos.d/CentOS-SCLo-scl.repo

 将enabled=1该为enabled=0

 再次清除缓存并更新

sudo yum clean all
sudo yum makecache

centos-sclo-rh 仓库是 CentOS Software Collections (SCLo) 项目的一部分,提供 CentOS 系统默认软件库中没有的新版本软件和开发工具。这个仓库主要提供以下内容:

  1. 较新的编译器和开发工具链
    包括 gccgcc-c++python 等软件的较新版本,可以满足需要新功能或性能改进的开发需求。

  2. 支持多版本环境
    SCLo 仓库允许在系统上安装多个版本的软件包,并在需要时使用 scl 工具启用特定版本,而不会影响系统的默认软件版本。这在需要兼容多个项目或不同版本的库时非常有用。

  3. 适用于软件开发的库和运行时环境
    SCLo 仓库中的软件包通常用于开发环境,比如新版的数据库、服务器、编译器和运行时(如 Python 3.xRubyNode.js 等)。这些包通常与 CentOS 默认的长期支持包不同,更新频率更高,以便开发人员可以在 CentOS 上访问到最新的工具。

  4. 支持更长的生命周期
    对于开发者来说,使用 SCLo 提供的环境可以保证在一个较长的生命周期内获得软件更新和支持,帮助系统在满足开发需求的同时保持稳定性。

如何使用 SCLo 仓库

通常可以通过 scl enable 命令来激活 SCLo 中的特定工具链。例如,如果安装了 devtoolset-8(包含 gcc 8),可以通过以下命令启用:

scl enable devtoolset-8 bash

这样,当前终端会话中会使用 gcc 8 等工具,而不会影响系统默认的 gcc 版本。

### 问题分析 用户在使用 `yum` 命令时遇到错误,提示 `Could not retrieve mirrorlist http://mirrorlist.centos.org`,具体错误信息为: ``` error was 14: curl#6 - “Could not resolve host: mirrorlist.centos.org; Unknown error” ``` 此错误表明系统无法解析 `mirrorlist.centos.org` 的主机地址,从而无法获取镜像列表。根据提供的引用,可能的原因包括网络配置问题、DNS 解析失败、或者镜像服务器已不可用。 --- ### 解决方案 #### 1. 检查网络连接和 DNS 配置 确保服务器的网络连接正常,并且 DNS 配置正确。可以通过以下命令测试网络连通性和 DNS 解析: ```bash ping 8.8.8.8 nslookup mirrorlist.centos.org ``` 如果 `ping` 或 `nslookup` 失败,则需要检查网络接口是否启用,并调整 `/etc/resolv.conf` 文件中的 DNS 设置。例如: ```bash nameserver 8.8.8.8 nameserver 8.8.4.4 ``` #### 2. 更换镜像源 如果 `mirrorlist.centos.org` 已不可用,可以手动配置使用其他镜像源。例如,将默认的镜像源替换为阿里云或清华源: **阿里云 CentOS 7 源配置示例:** ```bash mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum clean all yum makecache ``` **清华源 CentOS 7 配置示例:** ```bash mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.tuna.tsinghua.edu.cn/help/centos/ yum clean all yum makecache ``` #### 3. 检查 YUM 配置并跳过不可用仓库 如果某些仓库暂时不可用,可以配置 `yum` 跳过这些仓库,避免每次执行命令时都尝试连接: ```bash yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true ``` 例如,如果仓库 ID 为 `base`,则命令为: ```bash yum-config-manager --save --setopt=base.skip_if_unavailable=true ``` #### 4. 使用 Vault 源(适用于旧版本 CentOS) 对于已停止官方支持的 CentOS 版本(如 CentOS 6),可以使用 `vault.centos.org` 作为替代源: ```bash mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup echo '[base] name=CentOS-$releasever - Base baseurl=https://vault.centos.org/6.10/os/x86_64/ gpgcheck=1 gpgkey=https://vault.centos.org/6.10/os/x86_64/RPM-GPG-KEY-CentOS-6' > /etc/yum.repos.d/CentOS-Base.repo ``` #### 5. 检查 SELinux 和防火墙设置 SELinux 或防火墙可能阻止了 `yum` 访问外部网络。可以临时禁用 SELinux 或关闭防火墙进行测试: ```bash setenforce 0 systemctl stop firewalld ``` 如果问题解决,则需要调整 SELinux 或防火墙规则以允许 `yum` 正常运行。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值