APT 更新失败:写入的数据比预期的多

Pau*_*kys 8 apt 16.04

尝试通过apt updateapt-get update我收到以下错误更新包列表时:

E: Failed to fetch http://lt.archive.ubuntu.com/ubuntu/dists/xenial/universe/dep11/Components-amd64.yml.gz  Hash Sum mismatch
E: Failed to fetch http://lt.archive.ubuntu.com/ubuntu/dists/xenial/universe/dep11/icons-64x64.tar  Writing more data than expected (7468511 > 7467723) [IP: 193.219.61.87 80]
Run Code Online (Sandbox Code Playgroud)

这是否与本地化的包经销商有关,还是我一直以来?我正在运行 beta2 版本,我昨天已成功安装和更新(没有任何错误提示)。以前我使用了一个 14.04 衍生版本,它也没有出现任何错误。此错误的原因是什么?

编辑:要复制标记,主题名称解决了不同的问题,而不是正在引用的哈希和问题。

小智 8

添加一个参数,用于向 http/https 请求添加“无缓存”标头。它要求 apt 服务器提供未缓存的文件。如果您的机器和 apt 镜像/服务器之间存在任何类型的(损坏的)缓存机制,这会很有用。(如代理、ISP 透明缓存等)

sudo apt -o Acquire::https::No-Cache=True -o Acquire::http::No-Cache=True update
Run Code Online (Sandbox Code Playgroud)

只需在您的终端中运行此命令,它应该可以正常工作


Enz*_*zoR 7

我认为您在更新时一直在访问本地回购镜像。等待一段时间(通常 1 小时就足够了),然后再试一次。这可能发生在所有实时版本中,而不仅仅是 16.04(尚未正式发布,正如其他人所评论的那样)。

作为一种选择,您可以编辑/etc/apt/sources.list以使用您最喜欢的编辑器删除“lt”前缀或使用

sudo sed -i 's/http:\/\/lt\./http:\/\//g' /etc/apt/sources.list
Run Code Online (Sandbox Code Playgroud)

这将使您以较慢的访问为代价访问主存储库。

当然,您可以替换lt为您自己的 ISO 3166-1 alpha-2 国家/地区代码。