【问题标题】:yum/dnf error: Failed to download metadata for repo [closed]yum/dnf 错误:无法为 repo 下载元数据 [关闭]
【发布时间】:2020-05-16 12:25:36
【问题描述】:

在我的 CentOS 8 服务器上,许多 dnfyum 命令因以下错误而失败:

未能为 repo 下载元数据

这似乎只适用于涉及 https 连接的存储库,例如:

/etc/yum.repos.d $ cat epel-modular.repo
[epel-modular]
name=Extra Packages for Enterprise Linux Modular $releasever - $basearch/pub/epel/$releasever/Modular/$basearch
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-modular-$releasever&arch=$basearch&infra=$infra&content=$contentdir
...

我已使用wget 测试与这些站点的连接,并且成功,例如wget https://mirrors.fedoraproject.org 成功。

但是,各种dnfyum 命令失败:

$ dnf provides /bin/ls
Extra Packages for Enterprise Linux Modular 8 - x86_64     0.0  B/s |   0  B     00:00
Failed to download metadata for repo 'epel-modular'
Error: Failed to download metadata for repo 'epel-modular'

# dnf update --refresh
CentOS-8 - AppStream                                        20 kB/s | 4.3 kB     00:00
CentOS-8 - Base                                             19 kB/s | 3.8 kB     00:00
CentOS-8 - Extras                                          7.4 kB/s | 1.5 kB     00:00
CentOS-8 - PowerTools                                       20 kB/s | 4.3 kB     00:00
Remi's Modular repository for Enterprise Linux 8 - x86_64  4.1 kB/s | 3.5 kB     00:00
Safe Remi's RPM repository for Enterprise Linux 8 - x86_64 3.6 kB/s | 3.0 kB     00:00
Wazuh repository                                           0.0  B/s |   0  B     00:00
Failed to download metadata for repo 'wazuh_repo'
Error: Failed to download metadata for repo 'wazuh_repo'

我该如何解决这个问题?

【问题讨论】:

  • 由于各种原因,您可能会在连接到存储库时遇到问题,因此最好使用 dnf update -v(v 表示详细)来获取尽可能多的信息。
  • 虽然我同意这是一个离题的问题,因为它是搜索引擎中的第一个热门问题,但这里有一个可能的解决方案:(我知道我不应该回答这个问题,但编辑将是更大的邪恶):检查/etc/yum/vars/releasever 是否包含次要版本编辑:sed -i 's/$releasever/8/g' /etc/yum.repos.d/epel*.repo 仅反映主要版本。取自access.redhat.com/discussions/5473561

标签: centos repository yum dnf


【解决方案1】:

就我而言

sudo rm -r /var/cache/dnf 

解决了我的问题。

来源:https://access.redhat.com/discussions/4222851

【讨论】:

  • 您可以通过解释为什么删除此文件夹可以解决问题来改进此答案。
【解决方案2】:

我在 docker 容器内构建 Centos8 时遇到了同样的错误。通过运行以下修复:

# Do on build
RUN dnf clean all && rm -r /var/cache/dnf  && dnf upgrade -y && dnf update -y 

之前的错误(我运行的是 yum update 而不是 dnf):

Step 4/5 : RUN yum clean all && yum update -y && echo hostname -a
 ---> Running in 10d319da361d
0 files removed
CentOS-8 - AppStream                            0.0  B/s |   0  B     00:05    
Failed to download metadata for repo 'AppStream'
Error: Failed to download metadata for repo 'AppStream'

成功后:

 ---> 0b96049ee5eb
Step 4/5 : RUN dnf clean all && rm -r /var/cache/dnf  && dnf upgrade -y && dnf update -y & echo hostname
 ---> Running in f928c6da6cb0
hostname
Removing intermediate

【讨论】:

  • dnf升级导致同样的错误
  • 运行整个命令字符串还是只运行那个?你可能有一个单独的根本原因而不是我,对不起?
【解决方案3】:

我刚刚遇到了这个问题,所以我想我会为我添加修复它的内容,因为解决方案非常简单。对我来说,我忽略了这样一个事实,即每当我更改主机名时,它都会清除 /etc/resolv.conf 中的所有内容,所以我:

  1. nano -w /etc/resolv.conf**
  2. 添加了以下几行:

    nameserver 8.8.8.8
    nameserver 8.8.4.4
    
  3. 测试它(例如yum update -y

**注意:我在示例中使用 nano,只需将 nano 部分替换为您自己选择的文本编辑器

【讨论】:

    【解决方案4】:

    只需将以下(DNS 服务器)添加到 /etc/resolv.conf 文件:

    nameserver 9.9.9.9
    

    将解决问题:)

    【讨论】:

    • 您能解释一下为什么这可以解决问题吗?这是一个私有 DNS 服务器吗?如果是,它在谁的控制之下?
    • 这是做什么用的?
    • 亲爱的@Yazan Yahya,你拯救了我的一天。非常感谢。
    【解决方案5】:

    如果它不起作用,请检查您的 Internet 连接。这个错误出现在我的 CentOS 8 安装中,问题是没有正确配置 Internet 连接。

    【讨论】:

    • 你是对的,对于有同样问题的人,将此行添加到您的/etc/sysconfig/network-scripts/ifcfg-eth0 文件:ONBOOT=yes。原答案here.
    【解决方案6】:

    您可能没有意识到,yumdnf 在通过安全 HTTP(又名 HTTPS)进行通信时需要 SSL 证书。你检查过/etc/pki/tls/certs下的证书吗?至少应该有两个,例如:

    /etc/pki/tls/certs# ls -l
    total 4
    lrwxrwxrwx 1 root root   49 Jan 30 12:48 ca-bundle.crt -> /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
    lrwxrwxrwx 1 root root   55 Dec 11 13:19 ca-bundle.trust.crt -> /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt
    

    如果这些链接丢失,您可以简单地恢复它们。否则,这些文件是ca-certificates 包的一部分。您可以通过yumdownloader 从运行您的操作系统的另一台服务器获取它们,然后使用yum --nogpgcheck localinstall <RPM file> 从生成的 RPM 文件中恢复您的证书。

    【讨论】:

    • 您可以通过wgetcurl或任何浏览器下载包
    【解决方案7】:

    我在尝试运行时遇到了这个问题

    yum update -y
    

    来自 docker 容器。我将版本从 centos:8 更改为 centos:7,它为我解决了这个问题。

    【讨论】:

      【解决方案8】:

      我在弄乱 SD 适配器到 microSD 卡后遇到了同样的错误。编辑/etc/fstab 删除 SD 行为我解决了这个问题。

      【讨论】:

        【解决方案9】:

        我将确认我最近遇到了这个问题,并且为我解决的问题是 DNS 服务器的更改。我有一个静态 IP 集,但 DNS 是自动的,我必须重新配置 DNS 才能使用我的网关和 dc。现在正在运行。

        【讨论】:

          【解决方案10】:

          我的问题是在全新的 vm 安装后界面没有启动。 跑ifconfig 找到我的接口名称,然后ifup eXXX 得到一个dhcp ip地址。

          另外不要忘记将/etc/sysconfig/network-scripts/ifcfg-eXXX 中的ONBOOT=no 更改为ONBOOT=yes,以便在下次启动时出现。

          【讨论】:

          猜你喜欢
          • 2021-01-04
          • 2020-08-22
          • 2017-10-01
          • 1970-01-01
          • 1970-01-01
          • 2012-12-10
          • 2022-10-03
          • 2021-02-28
          • 1970-01-01
          相关资源
          最近更新 更多