解决CentOS8使用yum安装rpm报错为仓库appstream下载元数据失败Cannot prepare internal mirrorlist No URLs in mirrorlist

问题描述

最近,笔者在新服务器中使用安装命令 yum 安装 rpm 安装包时,却发生了报错。

  • 笔者报错时的运行环境:CentOS 8 x86_64

  • 报错时使用的命令:sudo yum localinstall *.rpm

  • 报错日志:

    CentOS Linux 8 - AppStream    68  B/s |  38  B     00:00    
    错误:为仓库 'appstream' 下载元数据失败 : Cannot prepare internal mirrorlist: No URLs in mirrorlist
    

原因

  这是因为 yum 解析安装包依赖关系时需要联网,而在 2022年1月31日,CentOS团队从官方镜像中删除了所有 CentOS 8 的软件包。CentOS 8 已于2021年12月31日到期,但这些软件包在官方镜像上保留了一段时间。现在他们被转移到 https://vault.centos.org

  因此,CentOS 8 原镜像不可用。

  【附】官方说明:https://www.centos.org/centos-linux-eol/

解决办法

  可以使用阿里云镜像。为此,需要先删除 CentOS 8 中的原镜像。这些文件位于 /etc/yum.repos.d 中,删除的方法有很多,这里只举一例。

  使用如下命令备份原镜像文件。(注意:移动本身就包含删除的效果)

mv /etc/yum.repos.d /etc/yum.repos.d_backup

  使用如下命令创建原目录。

mkdir /etc/yum.repos.d

  现在就可以下载阿里云镜像了。使用如下命令下载阿里云镜像。

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

  这会自动将下载的阿里云镜像放置在 /etc/yum.repos.d 中。之后,再使用命令 sudo yum localinstall *.rpm 就不会出现前述的报错了。

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
这个误通常是由于源中的镜像列表(mirrorlist)不包含任何可用的URL而引起的。您可以尝试以下方法来解决这个问题: 1. 清理缓存并重新运行 `sudo yum update` 命令: ``` sudo yum clean all ``` 然后再次运行 `sudo yum update` 命令。 2. 更换软件源为一个可用的镜像站点。编辑 `/etc/yum.repos.d/CentOS-Base.repo` 文件: ``` sudo vi /etc/yum.repos.d/CentOS-Base.repo ``` 将以 `mirrorlist=` 开头的行注释掉,并在下面添加一个以 `baseurl=` 开头的行,指定一个可用的镜像站点的URL。例如,您可以使用阿里云提供的镜像站点: ``` baseurl=http://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/ ``` 保存文件并尝试再次运行 `sudo yum update` 命令。 3. 如果上述方法都无效,您可以尝试手动下载缺少的元数据文件并将其放置在正确的位置。首先,查找缺少的元数据文件的URL,例如: ``` http://mirror.centos.org/centos/8/AppStream/x86_64/os/repodata/repomd.xml ``` 然后,使用 wget 命令手动下载该文件: ``` sudo wget http://mirror.centos.org/centos/8/AppStream/x86_64/os/repodata/repomd.xml -O /var/cache/yum/x86_64/8/AppStream/repodata/repomd.xml ``` 替换命令中的URL和文件路径为您实际缺少的元数据文件的URL和路径。下载完毕后,再次运行 `sudo yum update` 命令。 希望这些方法能够帮助您解决问题。如果问题仍然存在,请提供更多详细信息,以便我能够更好地帮助您。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值