执行 apt-get update 服务器端时什么可能导致“哈希总和不匹配”错误?

执行 apt-get update 服务器端时什么可能导致“哈希总和不匹配”错误?

我有多个适用于不同 Ubuntu 版本的 apt 存储库,除了我刚刚为 xenial 服务器创建的存储库外,它们都非常相似。当 xenial 服务器执行 apt-get 更新并与我的存储库通信时,它会收到 Packages.gz 的“哈希和不匹配”错误。这是什么原因造成的?

我不认为这是由于“哈希值不匹配”错误,无法下载软件包列表因为那里的答案都假设问题出在客户端,但就我而言,问题出在服务器上,所以无论你在客户端做什么都无法解决问题。不出所料,这个问题的所有答案都不起作用。

答案1

解决这个问题需要两个部分。

  1. [trusted=yes]在客户端的源列表中使用。
  2. 删除 apt 服务器上的 InRelease 和 Release 文件。

如果客户端的源列表中没有 [trusted=yes],则在执行 apt-get 时,它会抱怨 apt 服务器没有 Release 文件(如果不存在)。如果 Release 文件存在,则它会给出错误提示

无法在 Release 文件中找到预期的条目“Packages”(错误的 sources.list 条目或格式错误的文件)。

[trusted=yes]如果在源列表中但存储库包含 InRelease 和 Release 文件,也会发生上述错误。

在任何这些情况下,服务器的文件都将在客户端的 /var/lib/apt/lists/partial 中创建,并且客户端的 apt 列表将不会更新。

如果满足两个要求,那么客户端要做的就是删除 /var/lib/apt/lists/partial 中的文件,然后执行apt-get update.

相关内容