详细内容如下:
W: Failed to fetch gzip:/var/lib/apt/lists/partial/us.archive.ubuntu.com_ubuntu_dists_natty_main_source_Sources Hash Sum mismatch,
E: Some index files failed to download. They have been ignored, or old ones used instead.
#1 楼
只需删除/var/lib/apt/lists
目录中的所有内容:sudo rm -rf /var/lib/apt/lists/*
,然后运行:
sudo apt-get update
#2 楼
这是一个已知问题,代理缓存后的客户端会加剧这一问题。一些大型组织和ISP(尤其是在世界偏远地区)具有透明缓存,您可能不知道它们。基本问题是,当使用镜像时,apt存储库格式会受到竞争条件的影响。已更新。此问题尤其会影响快速变化的存储库(例如开发版本)。
您可以在此bug中跟踪此修复程序的进度(请在bug中将自己标记为“也影响我”),并且这个蓝图。但是请注意,这是一个复杂的问题,可能需要多个版本才能解决。
评论
该蓝图不再可用;这是存档副本。
– Eliah Kagan
15年4月23日在15:13
这个错误也存在于Ubuntu 16.04上
–斯科特·斯滕斯兰德
16年3月31日在19:34
该错误已被标记为“修复已发布”。
–user364819
16年4月5日在12:17
我只是将镜像默认值更改为最好的服务器,并且对我来说它的工作。
– habibun
17年7月23日在15:28
@habibun最佳服务器是什么意思?即使标记为“已解决”,我仍然要面对这个问题。你们有什么解决方法吗? apt-get clean都不行,rm -rf / var / lib / apt / lists / *甚至对我也有用
– irzhy
20 Dec 28 '21:07
#3 楼
解决此问题的最简单方法是:sudo apt-get clean
sudo apt-get update
评论
尝试接受的答案后,我仍然遇到相同的错误,此后立即尝试解决此问题
– Alex
15年10月21日在10:50
做sudo rm -rf / var / lib / apt / lists / *然后sudo apto-get clean也为我解决了这个问题。两者都不是孤立地工作。
–凸轮
15-10-29在23:27
在ubuntu 16.04上无济于事...以上评论也无济于事
–斯科特·斯滕斯兰德
16年3月31日在19:46
sudo apt-get clean对于16.04没有帮助,但是sudo rm -rf / var / lib / apt / lists / *修复了它
–sdaffa23fdsf
16年8月29日在0:18
对我来说,接受的答案不起作用,但是这一答案起作用了(Ubuntu 16.04)。
– JCasso
17年6月2日在17:40
#4 楼
唯一适用于我的解决方案来自unix.stackexchange。发生这种情况是因为它存在一个已知的错误,并且该解决方案是使用不同的压缩方法进行更新,因此文件可以正确加载并且校验和成功。
尝试一下:
sudo rm -rf /var/lib/apt/lists/partial
sudo apt-get update -o Acquire::CompressionTypes::Order::=gz
(感谢@brook_hong的rm部分的评论)
评论
这是唯一对我有用的解决方案。谢谢。
–塞林
16年6月21日在17:53
它也对我有用。请注意,您不必始终运行此命令。只需运行一次,然后您就可以运行“ apt-get update”而不会出错。
– dalf
16年7月6日在1:35
我尝试使用来自各种论坛的通用解决方案,但这是开箱即用的。谢谢。
–khwilo
18年5月26日在14:41
在Ubuntu 16.04 / linux mint上为我工作
– David Okwii
18年6月13日在17:09
这是我使用的唯一解决方案,正在使用Ubuntu 16.04
–阳光明媚的舒克拉
18-09-22在8:17
#5 楼
删除目录并执行sudo apt-get update
后,我仍然遇到问题。仅以下步骤解决了我的问题:
sudo sed -i -re 's/\w+\.archive\.ubuntu\.com/archive.ubuntu.com/g' /etc/apt/sources.list
我不知道这是否是正确的解决方法...
我在这里找到了解决方案。
评论
应该注意的是,depart指示德国的服务器,并且此脚本用主服务器替换为本地服务器。对于许多用户来说,以GUI方式转到Software Sources并切换设置将更加安全和可逆。以下内容几乎适用于每个国家/地区:sudo sed -i's / [a-z] [a-z] .archive.ubuntu.com / archive.ubuntu.com / g'/etc/apt/sources.list
– LiveWireBT
2014-09-10 19:53
#6 楼
当您的镜像不是最新的或由于错误而导致错误时,可能会发生这种情况。您可以稍等片刻然后重试,或者切换到另一个镜子:我该如何使用我附近的镜子,或者选择更快的镜子?
评论
为什么服务器不是最新的或过载的,会导致具有正确名称的文件成功下载(从某种意义上说,直到发送和接收所有字节后连接才终止)。 (我并不是说不会发生这种情况,只是希望您能够解释为什么会这样。)
– Eliah Kagan
2012年8月13日在21:30
@EliahKagan问题通常不是文件本身已损坏,而是存在一个(我正在简化,但不是太多)数据文件和一个包含数据文件哈希(指纹)的索引文件。当服务器上的存储库更新时(每小时发生一次),另一个文件被更新。现在,当数据文件已更新但索引文件尚未更新(反之亦然)时,您的客户端(apt-get或类似服务器)可能会访问服务器。然后,哈希与数据文件不匹配,客户端(错误地)假定数据文件已损坏。
–帕特里克·黑克(PatrickHäcker)
14年4月14日在6:49
当以上答案均无效时,更换镜子对我有用。
–芒果
16 Mar 25 '16在16:16
#7 楼
如果您在代理后面,则在99fixbadproxy
中创建一个名为/etc/apt/apt.conf.d/
的文件:sudo gedit /etc/apt/apt.conf.d/99fixbadproxy
将其粘贴到
99fixbadproxy
中并保存:Acquire::http::Pipeline-Depth 0;
Acquire::http::No-Cache true;
Acquire::BrokenProxy true;
现在运行更新命令:
sudo apt-get update
评论
哇,我在尝试所有答案,很奇怪,有多少不同的问题似乎导致相同的症状。
–已对偶
19年1月15日在17:35
我非常感谢这个答案
– Bremen_matt
19年2月25日在12:57
我必须先执行'sudo rm -rf / var / lib / apt / lists / *'才能使其工作。
–五
20-2-10在12:21
即使有这个建议也没有运气:/
– Marek Manduch
20年7月1日在20:02
#8 楼
以下命令可以解决您的问题。sudo rm -R /var/lib/apt/lists/partial/*
,然后
sudo apt-get update && sudo apt-get upgrade
它将解决您的问题。我也遇到了同样的问题,但是以上命令为我解决了这个问题。因此,请尝试一下。
解决方案参考
评论
我只是尝试过,但没有成功;第一个apt-get更新会在该目录的同一位置再次创建文件。
– Volker Siegel
2015年1月23日在11:17
#9 楼
如果您对CDN(内容交付网络-世界各地包含apt列表和软件包的缓存/镜像)存在疑问,那么可接受的答案将几乎无法起作用。如果a)您正在使用PPA或本地镜像,或者b)只需解决一个不匹配问题,它就会起作用。注意:如果您在日志中给出了特定的错误消息在上述问题中,接受的答案应始终有效。但是,有几个其他问题已作为该问题的副本被关闭,其中所接受的答案不足。
尝试尝试也没有什么坏处,因此,请从以下开始:
sudo rm -rf /var/lib/apt/lists/*
sudo apt-get update
这可能足以执行
sudo apt-get upgrade
或其他后续命令。但是如果它不起作用...
您也可能从该命令获得“哈希总和不匹配”错误。如果发生这种情况,请运行:
sudo apt-get update --fix-missing
即使该命令也可能会引发“哈希和不匹配”错误,因为该问题可能来自瞬时网络内容错误。如果是这样,请继续重新运行上面的
--fix-missing
命令,直到成功完成。例如,例如:until sudo apt-get update --fix-missing; do echo trying again; done
(每次运行
apt-get update --fix-missing
都应取得进展;如果连续运行不能将误差减小到零,请按Ctrl-c中断然后返回到此答案的开头,删除/var/lib/apt/lists
的内容,然后重试。)此后,更新可能有效,但可以肯定的是,先运行
apt-get clean
,这样:sudo apt-get clean
sudo apt-get update
请注意,如果您为此做准备以准备
apt-get upgrade
,则有可能(甚至可能,如果您的不匹配项需要多次更新)升级将因其自身的“哈希总和不匹配”错误而失败。如果是这样,请在升级命令中添加--fix-missing
:sudo apt-get clean
sudo apt-get upgrade --fix-missing
然后再试一次。 (
apt-get upgrade
和--fix-missing
还将尝试阻止失败的软件包并继续其他软件包,因此,至少运行一次该软件包,您应该会看到一些额外的进展。)但是,如果仍然无法正常工作... br />
像早期的
until sudo...
命令一样,通过重复此命令(始终在上面的clean
命令之前),您可能会获得进一步的进展,甚至可以使用until (sudo apt-get clean; sudo apt-get upgrade --fix-missing --yes); do echo trying again; done
,但是通常,它会在您第一次使用
--fix-missing
运行它时升级大多数可升级的程序包,然后卡在相同的程序包上,没有任何进一步的进展。此时,您需要回到sudo rm -rf /var/lib/apt/lists/*
的开头,然后重试。值得尝试整个过程两次或三遍,特别是如果您有数十个或数百个可升级程序包。#10 楼
我遇到了完全相同的问题,使用终端提供的所有解决方案都无济于事。对我来说,这是通过进入以下设置进行的:设置
设置→软件和更新→Ubuntu Software :从
Change Local
到Main Server
下载。它开始重新加载存储库并更新。当我输入:
sudo apt-get update
之后,就没有问题了。我正在使用Ubuntu 14.04.4 LTS。
评论
将Updates Download Server更改为Main之后,重新启动计算机,然后运行sudo apt-get update或sudo apt update。这解决了Ubuntu 20.04中的问题。
– Eric Kioko
20-05-28在13:13
#11 楼
我不知道这是否是正确的解决方案,但是我做了以下操作,错误消息消失了:我做了以下操作:更新管理器(软件更新)→设置→配置软件源→其他软件[选项卡]→取消选中软件包
按下“关闭”底部后,更新管理器开始再次自动检查更新,我看到以下消息:“此计算机上的软件是最新的。最近一次检查是在2秒钟前。”
Kubuntu 12.04
评论
这对我有用,这里没有其他解决方案起作用。除非我没有Ubuntu UI(仅在WSL下运行命令行),所以,对于发生错误的每个软件包
–易兹
18-2-20在13:29
如果我理解正确,那么这将完全停止针对该特定软件的更新。这几乎不是解决方案,对吗?
– thymaro
20年5月1日下午5:43
#12 楼
我遇到了类似的问题,并通过打开应用程序“软件和更新”并在“ Ubuntu软件”选项卡中更改“下载自”的值(在该下拉列表中尝试选择例如Main服务器(如果不是那样的话)。评论
是的,只有对我有用的东西。瑞士服务器似乎坏了。
– Eric MORAND
17年4月4日在14:26
#13 楼
我遇到了完全相同的问题,并且使用终端提供的所有解决方案都无济于事。对我来说,这是通过进入以下设置进行的:
设置→软件和更新→其他软件:取消选中所有复选框,然后按关闭。
它开始重新加载存储库并更新。当我输入:
sudo apt-get update
之后,就没有问题了。我正在使用Ubuntu 13.10。
评论
确实有效,但是它有效地使机器无法安装不是核心版本一部分的软件包(直到稍后重新激活这些复选框)……但是有时只是为了实现无错误的apt-get更新是必要的,该更新使安装目标软件包
–斯科特·斯滕斯兰德
16年4月6日在15:39
#14 楼
遵循@ robie-basak,我使用apt-cacher-ng
作为镜像缓存。因此,我删除了代理并解决了问题。我删除了文件
/etc/apt/apt.conf.d/01proxy
中的代理:#Acquire::http::Proxy "http://xxx.xx.xx.xx:4321";
然后需要:
sudo rm -rf /var/lib/apt/lists/*
sudo aptitude update
sudo aptitude upgrade
#15 楼
我刚刚安装了Ubuntu 17.10,并在某些存储库中遇到了Hash Sum Mismatch的相同错误。我去了软件和检查源,如下所示,从终端下载存储库没有任何问题。#16 楼
如果您正在Windows的VirtualBox内运行Linux,并且同时启用了Hyper-V(或使用Hyper-V的WSL 2),那么您将不胜其烦。这是一种症状。 VirtualBox 6.1表示支持Hyper-V,但事实并非如此(至少从2020-08-25 Windows v2040开始)。禁用Hyper-V,您就如鱼得水。在另一个提示中:在提升的命令提示符中输入以下内容:
要禁用:
bcdedit /set hypervisorlaunchtype off
要启用:
bcdedit /set hypervisorlaunchtype auto
重新开始生效
#17 楼
如果您正在运行带有家长控制的路由器,而没有将树莓派放入“不受管”列表中,则可能会发生这种情况。对我来说,我可以看到url被重定向到由路由器管理的圆形域。所以我只是将pi添加到非托管列表中,并且工作正常。
#18 楼
我已通过运行以下命令解决了所有未安装的软件包:sudo apt-get install PACKAGENAME
对于每个软件包。现在已安装它们,并且“哈希总和不匹配”错误消失了。
#19 楼
什么都没有为我工作。经过尝试并提出了建议的解决方案之后,最后,我手动下载了损坏的软件包,将它们复制到/ var / cache / apt / archives并从/ var / cache / apt / archives / partial中删除了损坏的软件包。#20 楼
我在Ubuntu 18.04中遇到了相同的问题,以下是我的实践经验:删除
/etc/apt/apt.conf
中的代理更改为官方apt来源。list
/etc/apt/sources.list
运行
sudo rm -rf /var/lib/apt/lists/*
清洁软件包
sudo apt autoremove -y && sudo apt autoclean -y
更新和升级。
sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y && sudo apt autoclean -y
完成!
#21 楼
对于我来说,这是在Ubuntu 16.04上发生的,没有一个投票最多的解决方案起作用。解决方案是升级软件包:sudo apt-get update # this will fail
sudo apt-get upgrade
sudo apt-get update # this will succeed
不确定清理旧列表(
sudo rm -rf /var/lib/apt/lists/*
和/或sudo apt-get clean
)是否有帮助!如有必要,请使用它们。#22 楼
20190112#错误#apt#修复#Update无法获取...哈希总和不匹配运行apt-get并找出要在
/etc/apt
中搜索的关键词:$ sudo apt-get -y更新
...
Err:77 http://au.archive.ubuntu.com/ubuntu xenial-updates / multiverse DEP- 11 64x64图标
哈希总和不匹配
...
在这种情况下,关键字为“ DEP-11”
在
/etc/apt
树中搜索关键字:$ sudo find / etc / apt -type f -exec egrep -in“ DEP-11”“ {}” / dev / null“;”
/apt.conf.d/50appstream:1:##此文件由appstreamcli(1)提供,用于下载DEP-11
/apt.conf.d/50appstream:6:deb :: DEP- 11,{
/apt.conf.d/50appstream:9:说明“ $(RELEASE)/ $(COMPONENT)$(NATIVE_ARCHITECTURE)DEP-11元数据”;
/apt.conf.d/50appstream :15:#DEP-11
/apt.conf.d/50appstream:17中描述的GUI组件的普通大小图标:deb :: DEP-11-icons {
/apt.conf。 d / 50appstrea m:20:说明“ $(RELEASE)/ $(COMPONENT)DEP-11 64x64 Icons”;
/apt.conf.d/50appstream:27:#DEP-11 YAML元数据。
/ apt.conf.d / 50appstream:28:deb :: DEP-11-icons-hidpi {
/apt.conf.d/50appstream:31:说明“ $(RELEASE)/ $(COMPONENT)DEP-11 128x128图标”;
找到了有问题的列表,请将其移到某处,以防万一这不起作用:
sudo mv -f /apt.conf.d/50appstream /tmp
清理
/var/lib/apt
:sudo apt-get -y clean
sudo rm -rf /var/lib/apt/lists/*
sudo find /var/lib/apt -type d -name "partial" -exec rm -rf "{}" ";"
立即尝试更新,它应该可以正常工作:
sudo apt-get -y update
评论
如果删除所有文件,则必须再次下载它们。您可以删除无效文件以加快此过程。
–贝朗
13年7月28日在12:51
我也记得Debian也会发生这种情况。解决方案是切换存储库(例如,从us.ubuntu.com切换到XX.ubuntu.com,其中XX是您的国家代码)或等待。最好的主意是稍等片刻,然后再重试。删除列表可能会修复损坏的列表,但这种情况很少。
–f.ardelian
13年7月31日在10:58
旧问题,但是在某些发行版(如emdebian)上,执行此操作后,您需要“ mkdir / var / lib / apt / lists / partial”(显然是root),否则,您将无法“ apt-get update”或以其他方式使用apt。
–地衣
2013年12月26日3:48
@AlyssaGono,如果它是一个文件夹,则需要像这样使用递归标志来运行rm:sudo rm -R / var / lib / apt / lists / *但是,即使那样对我也不起作用。
– mchid
2014年12月11日下午3:33
我们需要前缀-rf,所以它看起来像sudo rm -rf / var / lib / apt / lists / *
–阿斯卡尔
2015年2月6日,0:45