如何解决“apt-get update”导致哈希总和不匹配的问题

sky*_*ing 5 command-line apt troubleshooting

当我跑到apt-get update最后

Fetched 22.4 MB in 4s (4,659 kB/s)                      
W: Failed to fetch http://192.168.1.11/ubuntu/dists/utopic/main/binary-amd64/Packages  Hash Sum mismatch

W: Failed to fetch http://192.168.1.11/ubuntu/dists/utopic-updates/main/binary-amd64/Packages  Hash Sum mismatch

E: Some index files failed to download. They have been ignored, or old ones used instead.
Run Code Online (Sandbox Code Playgroud)

我已经完成了这个问题的所有雨舞:

sudo rm -rf /var/lib/apt/lists
sudo apt-get clean
sudo apt-get update
Run Code Online (Sandbox Code Playgroud)

但没有运气。

首先关注第一个错误,我尝试手动拉取文件并检查sha256

> wget http://192.168.1.11/ubuntu/dists/utopic/main/binary-amd64/Packages
> wget http://192.168.1.11/ubuntu/dists/utopic/main/binary-amd64/Packages.gz
> wget http://192.168.1.11/ubuntu/dists/utopic/main/binary-amd64 /Packages.bz2
> wget http://192.168.1.11/ubuntu/dists/utopic/Release
> sha256sum Package*
31f1f45c6873c3df36e5aeeee360ed02378f8c4c3c8c9a35e9adeaaf1cb0cf27  Packages
9650775abec90a24c26dbb03f91a488180309144338f64f7044f7119d60d7182  Packages.bz2
228df8d823f966152f19bb460c02f3237854000d551d9247bf35eed8088c2d3d  Packages.gz

> grep main/binary-amd64/Package
6a571ce0ef1d641ddc70536d6d5f549e07a89c93          8116687 main/binary-amd64/Packages
7144392ea4463fb14ac32f2571001075c072e181          1708299 main/binary-amd64/Packages.gz
3e69d6803d7ec76cd7fc28675078b7307d1f68a1          1330583 main/binary-amd64/Packages.bz2
31f1f45c6873c3df36e5aeeee360ed02378f8c4c3c8c9a35e9adeaaf1cb0cf27          8116687 main/binary-amd64/Packages
228df8d823f966152f19bb460c02f3237854000d551d9247bf35eed8088c2d3d          1708299 main/binary-amd64/Packages.gz
9650775abec90a24c26dbb03f91a488180309144338f64f7044f7119d60d7182          1330583 main/binary-amd64/Packages.bz2
c39f5e994e08eda7ada6744c4e830611          8116687 main/binary-amd64/Packages
8a0c176a456a83fa4f327ea0e8f897d6          1708299 main/binary-amd64/Packages.gz
8160d18474db0b9e36af68aacb62605b          1330583 main/binary-amd64/Packages.bz2
Run Code Online (Sandbox Code Playgroud)

我也调查过/var/lib/apt/lists/partial,发现

192.168.1.11_ubuntu_dists_utopic_main_binary-amd64_Packages.bz2                  192.168.1.11_ubuntu_dists_utopic-updates_main_binary-amd64_Packages.bz2
192.168.1.11_ubuntu_dists_utopic_main_binary-amd64_Packages.bz2.decomp.FAILED    192.168.1.11_ubuntu_dists_utopic-updates_main_binary-amd64_Packages.bz2.decomp.FAILED
Run Code Online (Sandbox Code Playgroud)

这些.bz2文件似乎与我手动拉取的Release文件以及在那里找到的文件相同。

我可以去哪里更进一步?我可以找出apt-get哈希和的文件检查,它得到了哪个哈希和以及它所期望的(以及为什么它会期望该值)?

另请注意,我仅限于将命令行用于最终解决方案。

L.H*_*L.H 4

我也遇到过同样的情况。

\n\n
W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/vivid-security/main/binary-amd64/Packages  Hash Sum mismatch\n\nW: Failed to fetch http://security.ubuntu.com/ubuntu/dists/vivid-security/main/binary-i386/Packages  Hash Sum mismatch\n\nW: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/vivid-updates/main/binary-amd64/Packages  Hash Sum mismatch\n\nW: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/vivid-updates/universe/binary-amd64/Packages  Hash Sum mismatch\n\nW: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/vivid-updates/universe/binary-i386/Packages  Hash Sum mismatch\n\nE: Some index files failed to download. They have been ignored, or old ones used instead.\n
Run Code Online (Sandbox Code Playgroud)\n\n

首先\xef\xbc\x8c我编辑了apt.conf

\n\n
Debug::Acquire::http true;\nDebug::pkgAcquire::Auth true;\nDebug::Hashs true;\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后\xef\xbc\x8chttp://security.ubuntu.com/ubuntu/dists/vivid-security/main/binary-amd64/Packagesapt-get update命令输出中搜索,发现了这个:

\n\n
Get:1 http://security.ubuntu.com vivid-security/main amd64 Packages [115 kB]\n100% [1 Packages 115 kB/115 kB 100%] [Waiting for headers] [Connecting to security.ubuntu.com (91.189.91.15)]201 URI Done: http://security.ubuntu.com/ubuntu/dists/vivid-security/main/binary-amd64/Packages.bz2\nRecivedHash: SHA256:0460b45fe9ace5ddb1e2080df5f75a6ee5d950fa451733991ec1b2b303bd16f6\nExpectedHash: SHA256:9daf23b84605ff833d1d280f837bd87fcbc3c7e0ca9403590985f970ee561f61\n\n100% [1 Packages bzip2 0 B] [Waiting for headers] [Connecting to security.ubuntu.com (91.189.91.15)]201 URI Done: bzip2:/var/lib/apt/lists/partial/security.ubuntu.com_ubuntu_dists_vivid-security_main_binary-amd64_Packages.bz2\nRecivedHash: SHA256:f10f6ef0486182bc9369e7912ddb9cf536c3049813ffd169b84f34dcda540ace\nExpectedHash: SHA256:9daf23b84605ff833d1d280f837bd87fcbc3c7e0ca9403590985f970ee561f61\n\n\nhttp://security.ubuntu.com/ubuntu/dists/vivid-security/main/binary-amd64/Packages: Computed Hash: SHA256:f10f6ef0486182bc9369e7912ddb9cf536c3049813ffd169b84f34dcda540ace  Expected Hash: SHA256:9daf23b84605ff833d1d280f837bd87fcbc3c7e0ca9403590985f970ee561f61\n100% [Waiting for headers] [Connecting to security.ubuntu.com (91.189.91.15)]GET /ubuntu/dists/vivid-security/multiverse/binary-amd64/Packages.bz2 HTTP/1.1\nHost: security.ubuntu.com\nCache-Control: max-age=0\nRange: bytes=5195-\nIf-Range: Mon, 28 Sep 2015 14:33:00 GMT\nUser-Agent: Debian APT-HTTP/1.3 (1.0.9.7ubuntu4)\n
Run Code Online (Sandbox Code Playgroud)\n\n

显然\xef\xbc\x8c下载的Packages文件不正确。所以我下载http://security.ubuntu.com/ubuntu/dists/vivid-security/main/binary-amd64/Packages.bz2http://security.ubuntu.com/ubuntu/dists/vivid-security/main/binary-amd64/Packages.gz解压它们并手动检查哈希和\xef\xbc\x9a

\n\n
$ wget http://security.ubuntu.com/ubuntu/dists/vivid-security/main/binary-amd64/Packages.bz2\n$ wget http://security.ubuntu.com/ubuntu/dists/vivid-security/main/binary-amd64/Packages.gz\n$ sha256sum Packages*\n0460b45fe9ace5ddb1e2080df5f75a6ee5d950fa451733991ec1b2b303bd16f6  Packages.bz2\nf10f6ef0486182bc9369e7912ddb9cf536c3049813ffd169b84f34dcda540ace  Packages.from.bz2\n9daf23b84605ff833d1d280f837bd87fcbc3c7e0ca9403590985f970ee561f61  Packages.from.gz\nb6b70b8f7838d742104904d461677652cf5120f9b8302841cb017c0c5c9dea40  Packages.gz\n
Run Code Online (Sandbox Code Playgroud)\n\n

事实证明,http://security.ubuntu.com/ubuntu/dists/vivid-security/main/binary-amd64/Packages.bz2其中包含错误的 Packages 文件,但http://security.ubuntu.com/ubuntu/dists/vivid-security/main/binary-amd64/Packages.gz包含默认情况下不下载的正确文件。

\n\n

因此编辑 apt.conf:

\n\n
Acquire::CompressionTypes::Order:: "gz";\n
Run Code Online (Sandbox Code Playgroud)\n\n

这对我有用。祝你好运!

\n


sky*_*ing 1

apt-get可以按照 中所述设置调试选项man apt.conf,可以使用 标志在命令行上设置这些选项-o

特别是如果您想查看实际的哈希值和预期的哈希值,可以使用sudo apt-get -o Debug::pkgAcquire::Auth=true update.

事实证明,http://192.168.1.11/ubuntu/dists/utopic/main/binary-amd64/Packages在这种情况下比较的哈希值不是上述文件的哈希值。相反,它是将解压Package.bz2文件的哈希值与文件的预期哈希值进行比较Package