Как я могу устранить неполадки в `apt-get update`, приводящие к несоответствию Hash Sum

Когда я бегу 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.

Я сделал все танцы под дождем из этого вопроса:

sudo rm -rf /var/lib/apt/lists
sudo apt-get clean
sudo apt-get update

но не повезло.

Сосредоточив внимание на первой ошибке, сначала я попытался вытащить файлы вручную и проверить 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

Я также посмотрел в /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

.bz2 файлы кажутся такими же, как я вытащил вручную, а также Release файл найден там.

Куда я могу пойти дальше? Могу ли я получить файл apt-get проверяет хеш-сумму, какую хеш-сумму он получил и что ожидал (и почему он ожидал этого значения)?

Также обратите внимание, что я ограничен в использовании командной строки для окончательного решения.

3 ответа

Я столкнулся с такой же ситуацией.

W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/vivid-security/main/binary-amd64/Packages  Hash Sum mismatch

W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/vivid-security/main/binary-i386/Packages  Hash Sum mismatch

W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/vivid-updates/main/binary-amd64/Packages  Hash Sum mismatch

W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/vivid-updates/universe/binary-amd64/Packages  Hash Sum mismatch

W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/vivid-updates/universe/binary-i386/Packages  Hash Sum mismatch

E: Some index files failed to download. They have been ignored, or old ones used instead.

Сначала я отредактировал apt.conf

Debug::Acquire::http true;
Debug::pkgAcquire::Auth true;
Debug::Hashs true;

то, что искали http://security.ubuntu.com/ubuntu/dists/vivid-security/main/binary-amd64/Packages в apt-get update вывод команды и нашел это:

Get:1 http://security.ubuntu.com vivid-security/main amd64 Packages [115 kB]
100% [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
RecivedHash: SHA256:0460b45fe9ace5ddb1e2080df5f75a6ee5d950fa451733991ec1b2b303bd16f6
ExpectedHash: SHA256:9daf23b84605ff833d1d280f837bd87fcbc3c7e0ca9403590985f970ee561f61

100% [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
RecivedHash: SHA256:f10f6ef0486182bc9369e7912ddb9cf536c3049813ffd169b84f34dcda540ace
ExpectedHash: SHA256:9daf23b84605ff833d1d280f837bd87fcbc3c7e0ca9403590985f970ee561f61


http://security.ubuntu.com/ubuntu/dists/vivid-security/main/binary-amd64/Packages: Computed Hash: SHA256:f10f6ef0486182bc9369e7912ddb9cf536c3049813ffd169b84f34dcda540ace  Expected Hash: SHA256:9daf23b84605ff833d1d280f837bd87fcbc3c7e0ca9403590985f970ee561f61
100% [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
Host: security.ubuntu.com
Cache-Control: max-age=0
Range: bytes=5195-
If-Range: Mon, 28 Sep 2015 14:33:00 GMT
User-Agent: Debian APT-HTTP/1.3 (1.0.9.7ubuntu4)

Очевидно, что скачанный файл Packages был неверным. Итак, я скачал http://security.ubuntu.com/ubuntu/dists/vivid-security/main/binary-amd64/Packages.bz2 а также http://security.ubuntu.com/ubuntu/dists/vivid-security/main/binary-amd64/Packages.gz, разархивировал их и проверил хэш-сумму вручную:

$ wget http://security.ubuntu.com/ubuntu/dists/vivid-security/main/binary-amd64/Packages.bz2
$ wget http://security.ubuntu.com/ubuntu/dists/vivid-security/main/binary-amd64/Packages.gz
$ sha256sum Packages*
0460b45fe9ace5ddb1e2080df5f75a6ee5d950fa451733991ec1b2b303bd16f6  Packages.bz2
f10f6ef0486182bc9369e7912ddb9cf536c3049813ffd169b84f34dcda540ace  Packages.from.bz2
9daf23b84605ff833d1d280f837bd87fcbc3c7e0ca9403590985f970ee561f61  Packages.from.gz
b6b70b8f7838d742104904d461677652cf5120f9b8302841cb017c0c5c9dea40  Packages.gz

Оказалось, что http://security.ubuntu.com/ubuntu/dists/vivid-security/main/binary-amd64/Packages.bz2 содержит неверный файл пакетов, но http://security.ubuntu.com/ubuntu/dists/vivid-security/main/binary-amd64/Packages.gz содержит правильный, который не загружен по умолчанию.

Поэтому отредактируйте apt.conf:

Acquire::CompressionTypes::Order:: "gz";

Это сработало для меня. Удачи!

Есть параметры отладки, которые можно установить на 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 файл.

Вы за прокси? Если это так, попробуйте эту последовательность:

      sudo apt update

sudo apt upgrade --fix-missing --fix-broken

Когда есть много ожидающих обновлений, я обнаружил, что для обновления всех пакетов необходимо запустить эту последовательность дважды.

Надеюсь это поможет.

Примечание. Моя система представляет собой консоль Ubuntu 20.04 LTS, работающую на промышленном ПК в частном и защищенном сегменте сети. Он имеет доступ только к одной машине в корпоративной сети, на которой работает прокси для этой единственной машины.

Другие вопросы по тегам