分页: 1 / 1

【基本解决】无法下载bzip2, Hash 校验和不符

发表于 : 2012-04-07 3:35
xujc
新装的 ubuntu 11.10
apt-get update 就会出现这个错误
换软件源解决不了

哪位大虾帮帮忙,见图:

Re: 无法下载bzip2, Hash 校验和不符

发表于 : 2012-04-09 10:41
xujc
有人知道么? :em03 :em03

Re: 无法下载bzip2, Hash 校验和不符

发表于 : 2012-04-09 11:02
YeLee
把那个ppa先禁用看看。

Re: 无法下载bzip2, Hash 校验和不符

发表于 : 2012-04-09 11:23
b33e
继续换源,或者过一段时间再更新,可能是源暂时的问题,等源更新

Re: 无法下载bzip2, Hash 校验和不符

发表于 : 2012-04-09 14:19
xujc
YeLee 写了:把那个ppa先禁用看看。
把/etc/apt/sources.list里面

代码: 全选

deb http://extras.ubuntu.com/ubuntu oneiric main
deb-src http://extras.ubuntu.com/ubuntu oneiric main
禁用之后, 有另外一个问题:

代码: 全选

W: GPG error: http://cn.archive.ubuntu.com oneiric-security Release: The following signatures were invalid: BADSIG 40976EAF437D05B5 Ubuntu Archive Automatic Signing Key <ftpmaster@ubuntu.com>
但是可以通过:

代码: 全选

http://forum.ubuntu.org.cn/viewtopic.php?f=120&t=27006
解决。

解决后就没问题了 :em03 :em03

Re: 无法下载bzip2, Hash 校验和不符

发表于 : 2012-04-09 14:22
xujc
b33e 写了:继续换源,或者过一段时间再更新,可能是源暂时的问题,等源更新
换了几个,有不同的问题。
先按上面的方法禁用ppa吧。 :em06 :em06

Re: 【基本解决】无法下载bzip2, Hash 校验和不符

发表于 : 2012-06-16 22:51
qileilu
:em20 禁用只是解决了不出错的问题,但是我一定要用这个源怎么办??哪位高手解决一下?

Re: 【基本解决】无法下载bzip2, Hash 校验和不符

发表于 : 2013-06-23 15:11
suokunlong
这个问题一直困扰着我,我已经找到解决办法,现和大家分享。

更新时出现hash校验和不符的原因
我认为,这种情况出现的原因是由于网络问题导致的更新时丢包,从而下载的数据不完整或错误。我在使用宽带通网络时99%的时候都会出现这种情况,而用中国联通宽带的情况下没有一次遇到这种情况。

解决办法

1. 运行以下命令,得到更新需要下载的软件包列表文件地址:

代码: 全选

$ sudo apt-get update --print-uris > apt-get-urls.txt
2. 用Firefox的downloadthemall插件下载上述列表文件。(用Firefox打开以上txt文件后批量下载)下载时注意:
  • 文件保存位置,比如/home/你的用户名/pool
  • 下载的文件里,有几个文件名为"Release"的文件,若使用downloadthemall默认的或者上述的重命名掩码保存,由于没有文件名后缀,默认保存为"Release.txt",所以需要设置这些文件的重命名掩码为”*curl*/*name*”(没有引号)(在downloadthemall的下载选项中可通过”资源名称“字段排序后,全选文件名为Release的文件后设置重命名掩码)
  • 设置每服务器并发下载1个文件,且关闭分块下载,否则可能会出错。
上述文件下载完成后,你的pool目录下就会有诸如”archive.canonical.com/ubuntu/dists/raring"等目录和文件。

3. 备份原/etc/apt/source.list为/etc/apt/source.list.normal,并利用gedit等文本编辑器等的替换功能将/etc/apt/source.list中的

代码: 全选

deb http://
deb-src http://
替换为

代码: 全选

deb file:///home/你的用户名/pool/
deb-src file:///home/你的用户名/pool/
这样,运行升级命令sudo apt-get update后apt-get将从本地的pool目录获取软件列表文件。

4. apt-get update成功后,此时若apt-get upgrade或者安装软件,则apt-get由于在本地找不到deb安装包而报错,此时可用以下方法获取下载链接,用downloadthemall批量下载deb包:

代码: 全选

$ sudo apt-get upgrade --yes --print-uris > ~/pool/apt-get-upgrade.txt
需要下载的deb包的链接在apt-get-upgrade.txt文件中,您需要将文件中的"file:///home/你的用户名/pool/”全部替换为“http://"再下载。
你可以将deb包统一下载到pool/deb目录下,然后用

代码: 全选

sudo mount -o bind /home/你的用户名/pool/deb /var/cache/apt/archives


此时你运行apt-get upgrade之后,apt-get每次都是从本地获取deb包了。

对于第1步获取到的软件包列表的下载地址,只需要获取一次,以后每次升级只需将原pool目录下的几个目录删掉后重新用downloadthemall下载即可,不用每次都重新获取。


希望对大家有用。

Re: 【基本解决】无法下载bzip2, Hash 校验和不符

发表于 : 2014-02-22 12:44
yuguorui
谢谢楼上 :em01

Re: 【基本解决】无法下载bzip2, Hash 校验和不符

发表于 : 2014-07-27 14:24
suokunlong
更新一下这个问题:现在我用的宽带通,用默认的设置还是经常会碰到hash mismatch的问题,
但是每次我都是多试几次就好了。
要是还是不行,就等一段时间再试几次。

我理解的是:ISP在他们的cache里缓存了文件,当ubuntu源中的该文件更新之后,ISP的缓存并没有更新,而由于文件名相同,下载时ISP以为还是请求的那个文件,就下载了旧的。
好在,当有用户下载该文件后,ISP会及时检查原始位置的文件有没有变化,若有变化及时更新缓存。(这就是为什么我多试几下就好了的原因)