如何修复 Ubuntu 或 Debian 上的 apt-get 更新错误
Ubuntu 或 Debian Linux 系统维护一个本地数据库(所谓的 APT 软件包索引),其中包含可从 /etc/apt/sources.list
或 /etc/apt/sources.list.d/
中定义的存储库获取的软件包。随着存储库中包含的软件包发生更改或将新存储库添加到系统中,APT 软件包索引通常会变得过时。
为了更新本地 apt 软件包索引,您可以运行:
$ sudo apt-get update
但是,由于各种原因,您在更新 APT 包索引时可能会遇到错误。下面我将介绍几种修复常见apt-get
更新错误的方法。
哈希和不匹配错误
W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/vivid-updates/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 update
”期间获取最新存储库被中断,并且后续的“apt-get update
”无法恢复中断的获取,则可能会发生此错误。在这种情况下,请先删除 /var/lib/apt/lists
中的内容,然后再重试“apt-get update
”。
$ sudo rm -rf /var/lib/apt/lists/*
$ sudo apt-get update
如果上述方法不能解决问题,请改用以下命令。
$ sudo rm -R /var/lib/apt/lists/partial/*
$ sudo apt-get update
404 未找到错误
如果您收到“404 Not Found
”错误,并且您使用的是相当旧的 Ubuntu 版本,则可能会出现 404 错误,因为您的 Ubuntu 安装不再受支持。
要查明是否属于这种情况,请首先检查您正在使用哪个 Ubuntu 版本,方法是运行:
$ cat /etc/lsb-release
然后参考 https://wiki.ubuntu.com/Releases 查看 Ubuntu 版本的“生命周期结束
”日期
如果您的版本已达到生命周期 (EOL),您需要按如下方式修改 /etc/apt/sources.list
,以避免“apt-get update
”期间出现 404 错误。将 CODENAME
替换为您正在使用的 Ubuntu 版本的代号。
# Required
deb http://old-releases.ubuntu.com/ubuntu/ CODENAME main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ CODENAME-updates main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ CODENAME-security main restricted universe multiverse
# Optional
#deb http://old-releases.ubuntu.com/ubuntu/ CODENAME-backports main restricted universe multiverse