Fedora 28 同步仓库 'updates' 缓存失败解决方案

Fedora 默认提供了两种软件源配置方式,分别是 metalinkbaseurl。前者一直是 Fedora 默认的配置方式,它提供了一个软件源列表,当你有需要的时候,dnf 就会从这个软件源列表里面选取一个速度快的软件源。然而,在很多时候,它所选取的软件源并不一定是最快的,于是就有了 baseurl 这种方式。它允许你指定一个软件源进行软件包的获取。

问题描述

在这些情况下:

你可能会得到这样一条类似于这样的消息:

错误:同步仓库 'updates' 缓存失败

原因

在排查网络连接问题后,检查 /etc/yum.repos.d/fedora-updates.repo。发现 baseurl 这行存在问题。在将 28 代入 $releaseverx86_64 代入 $basearch 后访问对应网址返回 404。

逐级目录往上翻查发现目录结构有所调整:

说人话

Emmm… 自己看吧:

解决方案

中科大软件源 为例,编辑 /etc/yum.repos.d/fedora-updates.repo

[updates]
name=Fedora $releasever - $basearch - Updates
failovermethod=priority
baseurl=https://mirrors.ustc.edu.cn/fedora/updates/$releasever/Everything/$basearch/
#metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f$releasever&arch=$basearch
enabled=1
repo_gpgcheck=0
type=rpm
gpgcheck=1
metadata_expire=6h
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
skip_if_unavailable=False

[updates-debuginfo]
name=Fedora $releasever - $basearch - Updates - Debug
failovermethod=priority
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/$releasever/Everything/$basearch/debug/tree/
metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-debug-f$releasever&arch=$basearch
enabled=0
repo_gpgcheck=0
type=rpm
gpgcheck=1
metadata_expire=6h
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
skip_if_unavailable=False

[updates-source]
name=Fedora $releasever - Updates Source
failovermethod=priority
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/$releasever/Everything/source/tree/
metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-source-f$releasever&arch=$basearch
enabled=0
repo_gpgcheck=0
type=rpm
gpgcheck=1
metadata_expire=6h
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
skip_if_unavailable=False

追踪