新安装的Ubuntu 14.04 LTS,进行sudo apt-get update
命令更新源的时候总是提示Hash Sum mismatch错误,再网上找了很多办法。
有的办法,有时候有用,有时候不起作用。先说说,网上常见的办法,最后说说一劳永逸的解决方案。
方案一:更换软件下载的源,可以通过System Settings的Software & Updates进行源设置。
方案二:
使用如下命令:
sudo apt-get clean
sudo rm -rf /var/lib/apt/lists/*
sudo apt-get update
方案三:
使用如下命令:
sudo apt-get clean
sudo apt-get update --fix-missing
对于方案二,我试了一下,起作用了,但是后来有不起作用了。
最后,在一篇国外的博客上找到了最终的解决方案。先上地址:Fixing APT Hash Sum Mismatch: Consistent APT Repositories
简单说来就是:使用apt命令的时候附加参数-o Acquire-by-hash=yes
但是这个命令是在apt 1.2.10以及更高版本进行支持的(Ubuntu 16.04支持这个命令),而Ubuntu 14.04自带的apt版本较低,所以需要安装新版本的apt工具。
安装新版本的命令如下:
curl -s https://packagecloud.io/install/repositories/computology/apt-backport/script.deb.sh | sudo bash
sudo apt-get install apt=1.2.10
如果还有使用12.04的童鞋,可以参考博文:
APT 1.2.10 backport for Ubuntu Trusty (14.04) and Ubuntu Precise (12.04)
以后使用sudo apt-get update -o Acquire-by-hash=yes
命令进行软件源的更新,就不太可能出现Hash Sum mismatch的错误了!
如果还是有错误,可以试试加上-o Acquire::https::No-Cache=True -o Acquire::http::No-Cache=True
这两个参数请求apt服务器的非缓存文件。