2. 背景

2. 背景

这是“为什么我没有获得安全更新”的 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中的默认行而发生.repobaseurl如果您创建自己的 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

相关内容