我最近在从 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
它一定会起作用。