debian apt 软件包哈希和不匹配 [关闭]
Posted
技术标签:
【中文标题】debian apt 软件包哈希和不匹配 [关闭]【英文标题】:debian apt packages hash sum mismatch [closed] 【发布时间】:2013-03-08 11:57:40 【问题描述】:在 Debian 命令行中,我在执行 aptitude update; aptitude upgrade
后得到哈希和不匹配。下面是命令行输出。我试过aptitude clean
,但这似乎没有帮助。我也做了一些谷歌搜索,但似乎没有任何帮助。这几天我一直收到不匹配错误。
感谢任何帮助。
Resolving dependencies...
open: 405; closed: 880; defer: 58; conflict: 78.
The following packages will be upgraded:
apache2.2-bin apt-utils aptdaemon aptdaemon-data avahi-daemon bind9-host dnsutils ekiga gir1.2-cogl-1.0 gir1.2-coglpango-1.0 gstreamer0.10-alsa gstreamer0.10-ffmpeg
gstreamer0.10-plugins-base gstreamer0.10-x host libapt-inst1.5 libavahi-client3 libavahi-common-data libavahi-common3 libavahi-core7 libavahi-glib1 libavahi-gobject0
libavahi-ui-gtk3-0 libavahi-ui0 libavutil51 libbind9-80 libcapi20-3 libcogl-common libcogl9 libdbus-glib-1-2 libdns88 libgconf2.0-cil libgssapi-krb5-2 libgs-s-rpc4
libgstreamer-plugins-base0.10-0 libisc84 libisccc80 libisccfg82 libk5crypto3 libkrb5-3 libkrb5support0 liblwres80 libmp3lame0 libmtp-common libmtp-runtime libmtp9
libpostproc52 libruby1.8 libswscale2 libsystemd-login0 libtag1-vanilla libtag1c2a libxml2 libxml2-utils linux-headers-3.2.0-4-686-pae linux-headers-3.2.0-4-common
linux-image-3.2.0-4-686-pae linux-libc-dev linux-source-3.2 python-aptdaemon python-aptdaemon-gtk python-aptdaemon.gtk3widgets python-aptdaemon.gtkwidgets
python-libxml2 python-numpy ruby1.8 telepathy-gabble unattended-upgrades xserver-xorg-video-ati xserver-xorg-video-radeon
The following packages are RECOMMENDED but will NOT be installed:
krb5-locales
70 packages upgraded, 0 newly installed, 0 to remove and 168 not upgraded.
Need to get 4322 kB/136 MB of archives. After unpacking 7982 kB will be used.
Do you want to continue? [Y/n/?]
Get: 1 http://www.deb-multimedia.org/ testing/main libavutil51 i386 8:1.0.5-dmo1 [111 kB]
Get: 2 http://www.deb-multimedia.org/ testing/main libmp3lame0 i386 1:3.99.5-dmo2 [338 kB]
Get: 3 http://www.deb-multimedia.org/ testing/main libpostproc52 i386 8:1.0.5-dmo1 [79.6 kB]
Get: 4 http://www.deb-multimedia.org/ testing/main libswscale2 i386 8:1.0.5-dmo1 [126 kB]
Get: 5 http://www.deb-multimedia.org/ testing/main libtag1-vanilla i386 1.8-dmo1 [257 kB]
Get: 6 http://www.deb-multimedia.org/ testing/main libtag1c2a i386 1.8-dmo1 [9396 B]
Get: 7 http://www.deb-multimedia.org/ testing/main gstreamer0.10-ffmpeg i386 1:0.10.13-dmo1 [3402 kB]
Fetched 4322 kB in 35s (121 kB/s)
E: Failed to fetch http://www.deb-multimedia.org/pool/main/f/ffmpeg-dmo/libavutil51_1.0.5-dmo1_i386.deb: Hash Sum mismatch
E: Unable to correct for unavailable packages
【问题讨论】:
在这里尝试了所有方法,总是相同的哈希不匹配。在来自 virtualbox 的新操作系统映像上 【参考方案1】:尝试使用apt-get
:
apt-get clean
rm -rf /var/lib/apt/lists/*
apt-get clean
apt-get update
apt-get upgrade
【讨论】:
感谢 mkjasinski 似乎有效。运行 apt-get upgrade 后,我收到以下消息:您可能需要运行 'apt-get -f install' 来纠正这些问题。以下软件包具有未满足的依赖关系: libavcodec53 : Depends: libavutil51 (>= 7:0.10.3) 但已安装 6:0.8.5-1 libavformat53 : Depends: libavutil51 (>= 7:0.10.3) 但 6:0.8。 5-1 已安装 E:未满足的依赖关系。尝试使用 -f。所以我跑了“sudo apt-get -f install libavutil5”。正确安装。然后我运行了apt-get update;再次进行 apt-get upgrade 并更新所有内容。 注意rm -rf /var/lib/apt/lists/*
也会删除目录/var/lib/apt/lists/partial
,所以rm -rf /var/lib/apt/lists/partial/*
行是多余的。
只需要删除旧列表。【参考方案2】:
将apt
升级为sudo apt-get install apt
【讨论】:
【参考方案3】:如果删除 /var/lib/apt/lists/*
不起作用...
(尤其是如果您使用代理),像这样修复“哈希和不匹配”:
创建文件 /etc/apt/apt.conf.d/99fixbadproxy 有这个内容
Acquire::http::Pipeline-Depth 0;
Acquire::http::No-Cache true;
Acquire::BrokenProxy true;
另见here
【讨论】:
@icedwater 在我的路由器更改了 http 响应后,我的哈希大小不匹配(偶尔用户身份验证的页面替换,例如在公寓大楼或大学/学院)。我必须启动浏览器并登录,这样路由器就不会这样做。删除列表会强制重新下载。最后一个 apt 设置读起来就像它说不要盲目信任 http 响应,这样问题就不会再次发生。中间的说没有缓存,我删除了那条线,因为我的互联网很慢;希望没关系。简而言之,如果有时会替换 http 响应,那么这些 apt 设置会有所帮助。 你先生是我今天的英雄,我已经在谷歌上搜索了大约一个小时,并且正抓着稻草。 cntlm 通过我们的代理工作了大约一年,然后突然停止工作。你的回答解决了它。 我想要第二个 ArnoVR - 我一直在努力解决这个问题,而您的解决方案是唯一有效的解决方案。谢谢! 你是救生员!这是唯一对我有用的解决方案!非常感谢。如果可以的话,我会给你+1000分! 唯一对我有用的东西。感谢@Mike 拯救了我的理智!【参考方案4】:在我的情况下,以下解决方案对我不起作用:
/var/lib/apt/lists/*
将服务器更改为“主服务器”(或其他一些外部服务器)
我仍然有相同的存储库给我“哈希和不匹配”错误。
我解决了尝试这个解决方案:
-
转到“软件和更新”
取消选中“Ubuntu 软件”部分中的所有存储库
选择“身份验证”部分
删除所有条目
创建一个
sudo apt update
(没有存储库,它很快就会结束)
重新打开“软件和更新”->“Ubuntu 软件”并重新检查您需要的所有存储库
再试一次sudo apt update
祝你好运。
【讨论】:
您的解决方案只是摧毁了一切。【参考方案5】:有时反向代理(apache,nginx,...)和网络会产生校验和问题,我们可以尝试不同区域的http代理来解决问题:
apt-get update -o Acquire::http::Proxy="$HTTP_PROXY" -o Debug::Acquire::http=true
【讨论】:
【参考方案6】:将您的 /etc/apt/sources.list
替换为:
deb http://http.debian.net/debian/ jessie main
deb http://http.debian.net/debian/ jessie-backports main
deb http://security.debian.org/ jessie/updates main
然后我也会跑:
sudo apt-key update -y
sudo apt-get update -y
sudo apt-get upgrade -y
这应该可以解决问题。
@source:https://www.lowendtalk.com/discussion/62567/apt-get-hash-sum-mismatch-debian-jessie
【讨论】:
jessie
在发布此答案时显然是最新的,但可能需要针对您的 Debian 版本或发行版进行调整。【参考方案7】:
编辑:我的 ubuntu 安装崩溃了。我不确定确切的原因,但这个黑客是主要嫌疑人。
我遇到了类似的问题
Get:1 http://in.archive.ubuntu.com/ubuntu artful/main amd64 openjdk-8-jre-headless amd64 8u144-b01-2 [27.3 MB]
Err http://in.archive.ubuntu.com/ubuntu artful/main amd64 openjdk-8-jre-headless amd64 8u144-b01-2
Hash Sum mismatch
Hashes of expected file:
- SHA256:46924d3fdb329b18b652bc3410f1f2c92ef1259b9a7d66bb1c5d3804b42a8c1c
- SHA1:0097b24ef75249d381c7c3f3fb6b36593720c15e [weak]
- MD5Sum:1ff35c4d8a2bed71dceba105801cf567 [weak]
- Filesize:27256930 [weak]
Hashes of received file:
- SHA256:ea6892eb6ce7cdc1674a46719302cdbf1b9d485e36bccd27247591527423bb6d
- SHA1:8c19fbdc9f534d8d3c304374bf0c8e7b05cb620b [weak]
- MD5Sum:1ff35c4d8a2bed71dceba105801cf567 [weak]
- Filesize:27256930 [weak]
Last modification reported: Sat, 30 Sep 2017 20:08:32 +0000
幸运的是,哈希不匹配只发生在一个包中。 因为我完全确定下载的包是预期的,所以我简单地编辑了 InRelease 文件。
我遵循的步骤:
1.grep
为预期有/var/lib/apt/lists
sudo grep 46924d3fdb329b18b652bc3410f1f2c92ef1259b9a7d66bb1c5d3804b42a8c1c *
在我的情况下是
in.archive.ubuntu.com_ubuntu_dists_artful_main_binary-amd64_Packages
将预期文件的哈希值替换为接收文件的哈希值。
升级成功。【讨论】:
【参考方案8】:我在安装 Tizen GBS 包时遇到了类似的问题。
只有以下解决方案对我有帮助:
-
手动下载丢失的 *.deb 包
将包复制到 /var/cache/apt/archives
再次运行安装命令
在这种情况下,apt 工具首先检查包的本地可用性。 如果它存在于 /var/cache/apt/archives 路径下,则跳过下载步骤(出现哈希和不匹配错误)。
示例:
wget http://download.tizen.org/tools/latest-release/Ubuntu_16.04/amd64/librpm-tizen_4.11.0.1.tizen20140530-tizen20140723_amd64.deb
sudo cp librpm-tizen_4.11.0.1.tizen20140530-tizen20140723_amd64.deb /var/cache/apt/archives
【讨论】:
【参考方案9】:我在 Windows 上使用 Virtualbox 时遇到了这个问题,Ubuntu 作为我的 GuestOS。由于 Hyper-V 在 Windows 上运行,我得到了哈希和不匹配(以及其他奇怪的错误)。 This link 详细说明如何禁用 Hyper-V,摘录如下:
打开 Powershell - 以管理员身份运行并使用命令:
bcdedit /set hypervisorlaunchtype off
随后重新启动。
【讨论】:
把我的头发扯掉了(我秃了!!)——你是救世主!! 谢谢!我一直在寻找解决方案。我在 VirtualBox 6.1 上运行 Ubuntu 20.04 并尝试了上述所有不同的变体。但是这个成功了。看起来它只影响 20.04,因为我最终还安装了 18.04.4 并且运行 apt-update 没有任何问题。 非常感谢!为了完整起见,您还可以从“Windows 功能”菜单中更改它,只需取消选中 HyperV。 谢谢!从“Windows 功能”gui 中禁用 hyperv 解决了这个问题。 这对你有用;谢谢!【参考方案10】:在我的情况下,它试图从 nodesource 安装 Nodejs,这确实有问题,总是以:“哈希和不匹配”结尾。以上解决方案均无效。
我不明白为什么,因为我按照信中的说明进行操作:
# 使用 Debian,作为 root curl -sL nodesource-url |重击 - apt-get install -y nodejs事实证明,当我的主要 debian sources.list 使用 http 时,Nodejs 的存储库使用了 https。
cat /etc/apt/sources.list.d/nodesource.list 德布 https://... deb-src https://...将 URL 更改为 http 并运行 apt-get update 解决了问题。
【讨论】:
【参考方案11】:对我来说,rm -rf /var/lib/apt/lists/* && apt-get update
不起作用。
但是,rm -rf /var/lib/apt/lists/* && apt update
确实有效。
【讨论】:
以上是关于debian apt 软件包哈希和不匹配 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
apt-get 使用 Multipass 更新 Ubuntu 20.04 VM 时的哈希和不匹配