当我检查更新时,出现“无法下载存储库信息”错误。

详细内容如下:

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


评论


如果删除所有文件,则必须再次下载它们。您可以删除无效文件以加快此过程。

–贝朗
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



#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 LocalMain 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下运行命令行),所以,对于发生错误的每个软件包,我都运行了“ sudo apt-get install ”。我在Ubuntu 16.04上。

–易兹
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