仅来自 xenial-security 主 amd64 包的 404 错误,为什么会发生这种情况?

仅来自 xenial-security 主 amd64 包的 404 错误,为什么会发生这种情况?

我最近在从 security.ubuntu.com/ubuntu 存储库获取更新时遇到了麻烦,但有趣的是,它只在 amd64 软件包方面遇到了麻烦。请参阅以下运行摘录sudo apt-get update

Ign:54 http://ddebs.ubuntu.com xenial-security/multiverse amd64 Packages
Ign:55 http://ddebs.ubuntu.com xenial-security/multiverse i386 Packages
Ign:56 http://ddebs.ubuntu.com xenial-security/multiverse all Packages
Ign:57 http://ddebs.ubuntu.com xenial-security/multiverse Translation-en_US
Ign:58 http://ddebs.ubuntu.com xenial-security/multiverse Translation-en
Ign:59 http://ddebs.ubuntu.com xenial-security/multiverse amd64 DEP-11 Metadata
Ign:60 http://ddebs.ubuntu.com xenial-security/multiverse DEP-11 64x64 Icons
Err:30 http://ddebs.ubuntu.com xenial-security/main amd64 Packages
  404  Not Found
Ign:31 http://ddebs.ubuntu.com xenial-security/main i386 Packages
Ign:33 http://ddebs.ubuntu.com xenial-security/main all Packages
Ign:34 http://ddebs.ubuntu.com xenial-security/main Translation-en_US
Ign:36 http://ddebs.ubuntu.com xenial-security/main Translation-en
Ign:38 http://ddebs.ubuntu.com xenial-security/main amd64 DEP-11 Metadata
Ign:39 http://ddebs.ubuntu.com xenial-security/main DEP-11 64x64 Icons
Ign:40 http://ddebs.ubuntu.com xenial-security/restricted amd64 Packages
Ign:41 http://ddebs.ubuntu.com xenial-security/restricted i386 Packages
Ign:42 http://ddebs.ubuntu.com xenial-security/restricted all Packages
Ign:43 http://ddebs.ubuntu.com xenial-security/restricted Translation-en_US

具体来说,apt-get 报告:

W: The repository 'http://ddebs.ubuntu.com xenial-security Release' does not have a Release file.
N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: Failed to fetch http://ddebs.ubuntu.com/dists/xenial-security/main/binary-amd64/Packages  404  Not Found
E: Some index files failed to download. They have been ignored, or old ones used instead.

事实上,如果我在浏览器中访问错误中显示的地址,我只会看到 404 页面。

我注意到的一件事是,/etc/apt/sources.list我没有更改的文件根本没有引用 ddebs.ubuntu.com,而是引用了 security.ubuntu.com 和 archive.ubuntu.com,那么为什么 apt-get 使用这个地址?如果我浏览 security.ubuntu.com 上的相同网址,则不会出现 404!

有任何想法吗?

答案1

对于评论来说,它有点长,所以我把它放到了答案中。可能会对您的故障排除有所提示。

有时,适当的错误消息并不是很有帮助,而且可能会产生误导。

这些消息通常出现在一长串“成功”输出行之后。我通常在断开网络时收到“无发布文件”消息。之前的输出通常根本不是从网络上获取的,因此很可能稍后出现错误告诉您“未知地址”。

Err:30 http://ddebs.ubuntu.com xenial-security/main amd64 Packages
404  Not Found
W: The repository 'http://ddebs.ubuntu.com xenial-security Release' does not have
a Release file.
N: Data from such a repository can't be authenticated and is therefore potentially
dangerous to use.

最好的办法是使用浏览器检查地址。就你的情况而言,你似乎已经确定该地址无效。这与错误消息完全匹配。

请注意,不仅 /etc/apt/sources.list 包含存储库链接,还包含 /etc/apt/sources.list.d/ 中的任何文件。您可能有一个文件链接到“ddebs.ubuntu.com”。如果是这样,只需将其删除即可。

此外,只要还有任何错误消息,Update 似乎就会取消任何更新操作。因此,我通常会注释掉 sources.list 文件中的每一行,直到没有错误为止,然后再继续查找哪一行导致问题。在我的情况下,通常是拼写错误或错误的 PPA。一旦您有了确切的行,检查路径/地址或查看某个键是否存在问题通常就不太困难了。

另外,我在 sources.list 文件中明确添加目标体系结构方面也有很好的经验,等等

deb [arch=amd64] http://ddebs.ubuntu.com/.... xenial-security main 

希望能帮助到你。

PS:省去输入一些文字的时间,直接使用“sudo apt update”即可。无需使用“apt-get”来执行更新命令。

答案2

跑步

sudo apt-get purge libappstream3 

将删除 libappstream3(自动升级后,apt-get update会导致错误)

跑步

sudo apt-get update 

它一定会起作用。

相关内容