debian 镜像:哈希值不匹配

debian 镜像:哈希值不匹配

我有一个在学校维护的镜像服务器。

$ uname -a Linux CSE-Cloud01 4.0.0-1-amd64 #1 SMP Debian 4.0.2-1(2015-05-11)x86_64 GNU/Linux

$ sudo apt-get 更新

......
 W: Failed to fetch http:// mirror.cs.nchu.edu.tw/debian/dists/jessie/main/source/Sources  Hash Sum mismatch    
    W: Failed to fetch http:// mirror.cs.nchu.edu.tw/debian/dists/jessie/main/binary-amd64/Packages  Hash Sum mismatch

W: Failed to fetch http:// mirror.cs.nchu.edu.tw/debian/dists/jessie/non-free/binary-amd64/Packages Hash Sum mismatch

W: Failed to fetch http:// mirror.cs.nchu.edu.tw/debian/dists/jessie/main/i18n/Translation-en  Hash Sum mismatch

E: Some index files failed to download. They have been ignored, or old ones used instead.

在镜像本身或我的一些机器上,它最终失败了。(有些工作正常。)我曾尝试执行下面推荐的命令,但没有效果

$ apt-get clean
$ rm -rf /var/cache/apt/*
$ rm -rf /var/lib/apt/lists/*
$ apt-get update

我在网上找不到其他解决方案。有人知道如何解决这个问题吗?

答案1

如果删除/var/lib/apt/lists/*不起作用...
(特别是如果你使用了代理),像这样修复“哈希值不匹配”

创建文件 /etc/apt/apt.conf.d/99fixbadproxy
有此内容

Acquire::http::Pipeline-Depth 0;
Acquire::http::No-Cache true;
Acquire::BrokenProxy    true;

也可以看看这里

答案2

我遇到了类似的问题,这似乎是镜子上的问题。

就像声明的那样这里删除服务器上的“InRelease”文件并重试。

在 /debian/dists/jessie 目录中有一个名为 InRelease 的文件。它的日期比其他文件早几个月(大多数文件的日期都是今天的日期)。

答案3

在这种情况下,问题总是在于文件夹中显示的哈希值InRelease和文件之间的差异。Releasedist/[name-of-your-distro]/

这些文件用于验证其他类似文件Packages.xz是否未被更改。当哈希值不匹配时,您会收到错误。不幸的是,重新哈希并写入新值是不够的,因为您还需要使用*Release您不拥有的私钥对这两个文件进行签名……这是一项非常繁琐的工作。

就我而言,我通过删除发布文件解决了该问题(首先只是使用本地下载的镜像):

rm dist/[name-of-your-distro]/*Release*

并在 APT 源中与此 repo 对应的行中添加一个信任开关:

deb [trusted=yes] file:/path/to/your/local/mirror/ubuntu xenial main

注意[信任=是]

希望这会有所帮助,甚至在将来帮助我:)

答案4

我在从 wheezy 升级到 jessie 时遇到了这样的问题。解决方案是暂时删除 xz-utils 包。由于 apt 版本过旧,Wheezy 无法管理 .xz 包列表。

apt-get remove xz-utils
apt-get update
apt-get upgrade
apt-get install xz-utils

相关内容