我有多个适用于不同 Ubuntu 版本的 apt 存储库,除了我刚刚为 xenial 服务器创建的存储库外,它们都非常相似。当 xenial 服务器执行 apt-get 更新并与我的存储库通信时,它会收到 Packages.gz 的“哈希和不匹配”错误。这是什么原因造成的?
我不认为这是由于“哈希值不匹配”错误,无法下载软件包列表因为那里的答案都假设问题出在客户端,但就我而言,问题出在服务器上,所以无论你在客户端做什么都无法解决问题。不出所料,这个问题的所有答案都不起作用。
答案1
解决这个问题需要两个部分。
[trusted=yes]
在客户端的源列表中使用。- 删除 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
.