这是“为什么我没有获得安全更新”的 N 部分。造成这种情况的原因是什么?
- 操作系统:Fedora 工作站 23
- 日期:2016-03-03
1. 短暂意味着失败,然后成功
# dnf check-update
Error: Failed to synchronize cache for repo 'updates' from 'http://download.fedoraproject.org/pub/fedora/linux/updates/23/x86_64/': Yum repo downloading error: Downloading error(s): repodata/0e95ae636347564e66b0e600c9a1369d5c57415ed969bc7bba13e1a190d195c1-filelists.xml.gz - Cannot download, all mirrors were already tried without success; repodata/33467a86da0d3b3b24c27bf054700c0e35041a0643054e62f961d687b2a8c628-prestodelta.xml.xz - Cannot download, all mirrors were already tried without success; repodata/6ae21040c8354039ebdaebd0b3ebb99d6b577c0231e83faf5fdd906944bf32ee-primary.xml.gz - Cannot download, all mirrors were already tried without success; repodata/125571cd75bc296f2b59a8f11d92652f8faa8cbfc9e0fe0637b37c26e9a258fd-updateinfo.xml.xz - Cannot download, all mirrors were already tried without success
1.1所以失败了,wget显示什么?
# wget http://download.fedoraproject.org/pub/fedora/linux/updates/23/x86_64/repodata/0e95ae636347564e66b0e600c9a1369d5c57415ed969bc7bba13e1a190d195c1-filelists.xml.gz
--2016-03-03 23:32:47-- http://download.fedoraproject.org/pub/fedora/linux/updates/23/x86_64/repodata/0e95ae636347564e66b0e600c9a1369d5c57415ed969bc7bba13e1a190d195c1-filelists.xml.gz
Resolving download.fedoraproject.org (download.fedoraproject.org)... 140.211.169.206, 85.236.55.6, 152.19.134.198, ...
Connecting to download.fedoraproject.org (download.fedoraproject.org)|140.211.169.206|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://www.mirrorservice.org/sites/dl.fedoraproject.org/pub/fedora/linux/updates/23/x86_64/repodata/0e95ae636347564e66b0e600c9a1369d5c57415ed969bc7bba13e1a190d195c1-filelists.xml.gz [following]
--2016-03-03 23:32:48-- https://www.mirrorservice.org/sites/dl.fedoraproject.org/pub/fedora/linux/updates/23/x86_64/repodata/0e95ae636347564e66b0e600c9a1369d5c57415ed969bc7bba13e1a190d195c1-filelists.xml.gz
Resolving www.mirrorservice.org (www.mirrorservice.org)... 212.219.56.184
Connecting to www.mirrorservice.org (www.mirrorservice.org)|212.219.56.184|:443... connected.
HTTP request sent, awaiting response... 404 Not Found
2016-03-03 23:32:48 ERROR 404: Not Found.
1.2 需要明确的是,这里不需要担心 HTTP 代理
# echo $http_proxy
#
1.3 挠头,再试一次
# dnf check-update
Fedora 23 - x86_64 - Updates 1.3 MB/s | 20 MB 00:15
google-chrome 55 kB/s | 3.4 kB 00:00
Last metadata expiration check performed 0:00:00 ago on Thu Mar 3 23:35:26 2016.
google-chrome-stable.x86_64 49.0.2623.75-1 google-chrome
^ 显然这包括安全更新...
graphite2.x86_64 1.3.6-1.fc23 updates
....Fedora 安全更新...
pcre.x86_64 8.38-6.fc23 updates
...另一个 Fedora 安全更新。
1.4 注意事项
然后我在浏览器中查看了mirrorservice.org 上的目录(即在成功更新检查之后)。文件列表已更名为 85f1054756ada3a2a9ab2f6c40c23378c74afb22ba4599c3cbb46334be0820a1-filelists.xml.gz。所以我们试图获取一个已被删除的旧文件。
2. 背景
开始上面的调查是因为我注意到上面的 Fedora 安全更新,但 GNOME 没有通知我这些更新。即使单击刷新后,GNOME 软件也显示 0 更新,这不是我所期望的行为。
pkcon update
做过显示更新,虽然我忘了记录它。我不知道当时是否包含安全更新。
使用 成功检查更新后dnf
,刷新 GNOME 软件会显示更新。在撰写本文时,我知道 dnf 和 PackageKit-on-Fedora 使用完全不同的缓存目录。因此dnf
填充它的缓存是不是GNOME 软件运行的直接原因。
答案1
我的第一个猜测是,mirrorservice.org 没有阅读指示并且不知道如何镜像。换句话说,他们的存储库在更新时可能会出现不一致。在更新以指向新文件列表filelists.xml.gz
之前,可以删除旧的文件列表。repomd.xml
但很奇怪,这么大的镜子竟然会看错。
然后我想起了这个问题。 download.fedoraproject.org
只是破碎的。 它针对每个请求将您重定向到不同的存储库。问题是您不能假设各个存储库会同时更新。 (Fedora 的主存储库的格式不支持这一点,因为它不保留以前的文件列表)。
默认配置不使用download.fedoraproject.org,所以没问题。这只是因为我从metalink
下载切换并取消注释配置文件baseurl
中的默认行而发生.repo
。 baseurl
如果您创建自己的 Fedora 存储库以在本地使用,那么这是很好的选择,但否则您想使用默认系统metalink
,由您的计算机选择要从中下载的存储库。
就我而言,不一致可能是在mirrorservice.org 和bytemark 镜像之间。您可以使用curl查看重定向:
$ curl --head http://download.fedoraproject.org/
HTTP/1.1 302 Found
Date: Fri, 04 Mar 2016 15:34:58 GMT
Server: Apache/2.4.6 (Red Hat Enterprise Linux) OpenSSL/1.0.1e-fips mod_wsgi/3.4 Python/2.7.5
Location: https://www.mirrorservice.org/sites/dl.fedoraproject.org/pub/fedora/linux//
AppTime: D=328174
AppServer: proxy02.fedoraproject.org
Content-Type: text/html; charset=UTF-8
$ curl --head http://download.fedoraproject.org/
HTTP/1.1 302 Found
Date: Fri, 04 Mar 2016 15:35:00 GMT
Server: Apache/2.4.6 (Red Hat Enterprise Linux) OpenSSL/1.0.1e-fips mod_wsgi/3.4 Python/2.7.5
Location: http://mirror.bytemark.co.uk/fedora/linux//
AppTime: D=363432
AppServer: proxy07.fedoraproject.org
Content-Type: text/html; charset=UTF-8