Ubuntu apt-get "Hash Sum mismatch" 问题解决方法

时间:2023-03-08 15:38:22

参考:ubuntu: apt-get update的时候遇到“Hash Sum mismatch”错误

在安装Mininet的时候,apt-get update的时候遇到了这个问题:

W: Failed to fetch http://ppa.launchpad.net/webupd8team/java/ubuntu/dists/trusty/main/binary-i386/Packages  Hash Sum mismatch

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

这个问题总结就是:“总的来说就是提供源的服务器的问题。”

解决方法有三种:

1.清除之前的缓存,重新apt-get update

sudo apt-get clean
sudo apt-get update --fix-missing

2.system settings => 换源

3./var/lib/apt/lists

sudo rm -fR /var/lib/apt/lists/*  

sudo mkdir /var/lib/apt/lists/partial  

sudo apt-get update

讲道理,一般来说到这里应该已经解决了,但是我依然哈希值不匹配...

在百度无果之后,转投谷歌,终于在Ubuntu forums中找到了答案,链接:关于引起更新源索引时Hash Sum mismatch问题的真正原因及解决方案

原因:

This is a known issue, and is exacerbated for clients behind proxy caches. Some large organisations and ISPs (especially in remote parts of the world) have transparent caches of which you may not be aware.

The fundamental issue is that the apt repository format is subject to race conditions when a mirror is updated. This problem particularly affects repositories that change rapidly, such as the development release.

You can track progress on the fix for this in this bug (please mark yourself as "affects me too" in the bug) and this blueprint. But be aware that it is a complex issue and may take more than one release to resolve.

shareimprove this answer

answered Jul 5 '12 at 22:21

中文翻译,来自上面链接:

你所使用的网络供应商,有些会设置一些透明缓存,以增加网络内部速度,减少出口的流量,你获取的某些文件不是源服务器上的真正文件,是从缓存中获取的,当缓存中获取的一些校验信息跟源中不一致的时候,自然提示校验失败,无法继续更新.

此问题实际上跟apt软件仓库的格式设计有关。新发布的版本的软件仓库更新比较频繁,按道理缓存中的文件应该同步更新,可惜因为多个镜像站点的有快慢,因此造成了缓存无法保证一致性。

当网络提供商足够有实力,不设至透明缓存时,这个问题是不存在的。这就是为什么有些人反馈使用无线上网卡(移动、联通的3g网络)就一切OK,一单换回长城宽带、或者宽带通就不行了。

我使用的解决方法很简单:开热点,不使用宿舍的wifi环境,直接绕开透明缓存。

2017/1/3 1/4更新

2/17更新:

今天又遇到了这个情况,不过不一样的是,我使用的是PC端,而且没有装wifi网卡,故无法使用上述办法。

但是使用上述的方法2换了个源,就解决了。

system settings => 换源