1. 程式人生 > >Ubuntu使用apt-get update命令時提示Hash Sum mismatch錯誤的解決方案

Ubuntu使用apt-get update命令時提示Hash Sum mismatch錯誤的解決方案

新安裝的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伺服器的非快取檔案。