Неполадки при загрузке списка пакетов из-за & ldquo; несоответствия хэш-суммы & rdquo; ошибка

При проверке обновлений появляется ошибка «Не удалось загрузить информацию о репозитории».

Это то, что подходит под детали:

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.
431
задан 13 November 2014 в 02:37

22 ответа

Просто удалите все содержимое каталога /var/lib/apt/lists:

sudo rm -rf /var/lib/apt/lists/*

и запустите:

sudo apt-get update
505
ответ дан 13 November 2014 в 02:37

Я столкнулся с той же проблемой в моем Ubuntu 18.04, ниже мой практический опыт:

  1. Удалите прокси в /etc/apt/apt.conf
  2. Перейти на официальный apt sources.list /etc/apt/sources.list
  3. Выполнить sudo rm -rf / var / lib / apt / lists / *
  4. Очистить пакеты sudo apt autoremove -y && sudo apt autoclean -y
  5. Обновление и обновление. sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y && sudo apt autoclean -y

Готово!

0
ответ дан 13 November 2014 в 02:37

Я решил, что все пакеты не устанавливаются, выполнив эту команду:

sudo apt-get install PACKAGENAME

Для каждого из пакетов. Теперь они установлены, и ошибка «Несоответствие хеш-суммы» исчезла.

0
ответ дан 13 November 2014 в 02:37

У меня была похожая проблема, и я решил ее, открыв приложение «Программное обеспечение и обновления» и на вкладке «Программное обеспечение Ubuntu» изменив значение из "Скачать из" (в этом выпадающем списке попробуйте выбрать, например, Главный сервер, если это не так).

2
ответ дан 13 November 2014 в 02:37

Ничего не помогло. После попытки и предложенных решений, в конце концов, я скачал сломанные пакеты вручную, скопировал их в /var/cache/apt/архивы и удалил сломанные пакеты из /var/cache/apt/архивов/partial.

0
ответ дан 13 November 2014 в 02:37

У меня была точно такая же проблема, и все решения, предоставленные с помощью терминала, не помогли.

Для меня это было через:

Настройки → Программное обеспечение и обновления → Программное обеспечение Ubuntu : Загрузить с: Измените локальный на Главный сервер .

Начнется перезагрузка репозиториев и обновление. Когда я вхожу:

sudo apt-get update

После этого никаких проблем не было. Я использую Ubuntu 14.04.4 LTS.

4
ответ дан 13 November 2014 в 02:37

20190112 #Errors #apt #Fix #Updates Failed to fetch ... Hash Sum mismatch

  1. Запустите apt-get и узнайте, какие ключевые слова искать в / и т. Д. / apt :
    • $ sudo apt-get -y update
    • ...
    • Err: 77 http://au.archive.ubuntu.com/ubuntu xenial-updates / multiverse DEP-11 64x64 Иконки
    • Хеш Несоответствие суммы
    • ...
    • В этом случае ключевое слово - "DEP-11"
  2. Найдите в дереве / 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 Metadata";
    • /apt.conf.d/50appstream:15: # Значки нормального размера для компонентов графического интерфейса, описанных в DEP-11
    • /apt.conf.d/50appstream:17: deb :: DEP-11-icons {
    • /apt.conf.d/50appstream:20: Описание "$ (RELEASE) / $ (COMPONENT) DEP-11 64x64 Значки ";
    • /apt.conf.d/50appstream:27: # метаданные YAML DEP-11.
    • /apt.conf.d/50appstream:28: deb :: DEP-11-icons-hidpi {
    • /apt.conf.d/50appstream:31: Описание "$ (RELEASE) / $ (COMPONENT) DEP-11 128x128 Icons";
  3. Найдя проблемный список, переместите его куда-нибудь на случай, если это не так ' t работа:

     sudo mv -f /apt.conf.d/50appstream / tmp
     
  4. Очистить / 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 "{}" ";"
     
  5. Попробуйте обновить сейчас, теперь должно работать:

     sudo apt-get -y update
     
0
ответ дан 13 November 2014 в 02:37

Это может произойти, если вы используете маршрутизатор с родительским контролем и не поместили свой raspberry pi в «неуправляемый» список. Что касается меня, я мог видеть, что URL-адрес перенаправлял на круговой домен, управляемый маршрутизатором.

Поэтому я просто добавил свой пи в неуправляемый список, и он работал нормально.

0
ответ дан 13 November 2014 в 02:37

Это это случилось для меня на 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 ) помогло или нет! При необходимости используйте их.

0
ответ дан 13 November 2014 в 02:37

У меня была точно такая же проблема, и все решения, предоставленные с помощью терминала, не помогли .

Для меня это было, войдя в:

Настройки → Программное обеспечение и обновления → Другое программное обеспечение: снимите все флажки и нажмите «Закрыть».

Начнется перезагрузка репозиториев и обновление. Когда я вхожу:

sudo apt-get update

После этого никаких проблем не было. Я использую Ubuntu 13.10.

1
ответ дан 13 November 2014 в 02:37

Я только что установил Ubuntu 17.10 и получал ту же ошибку Hash Sum Mismatch для некоторого репозитория. Я пошел в программное обеспечение и проверенный исходный код, как показано ниже, и в дальнейшем не было проблем с загрузкой репозитория с терминала.

My Software and Update Section

1
ответ дан 13 November 2014 в 02:37

Следующие команды могут решить вашу проблему.

sudo rm -R /var/lib/apt/lists/partial/*

а затем

sudo apt-get update && sudo apt-get upgrade

это решит вашу проблему. Я тоже столкнулся с этой проблемой, но вышеприведенные команды решили эту проблему за меня. Поэтому дайте им попробовать.

Ссылка на решение

5
ответ дан 13 November 2014 в 02:37

Если вы находитесь за прокси-сервером, тогда создайте файл с именем 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
12
ответ дан 13 November 2014 в 02:37

Это может произойти, если ваше зеркало не обновлено или обслуживает ошибки из-за перегрузки. Вы можете немного подождать и попробовать еще раз или переключиться на другое зеркало:

25
ответ дан 13 November 2014 в 02:37

У меня все еще была проблема после удаления каталогов и выполнения sudo apt-get update .
Только следующий шаг решил мою проблему:

sudo sed -i -re 's/\w+\.archive\.ubuntu\.com/archive.ubuntu.com/g' /etc/apt/sources.list

Я не знаю, правильный ли это способ исправить ...
Я нашел решение здесь .

45
ответ дан 13 November 2014 в 02:37

Самый простой способ это исправить:

sudo apt-get clean
sudo apt-get update
112
ответ дан 13 November 2014 в 02:37

Единственное решение, которое сработало для меня, - из unix.stackexchange .

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

Попробуйте это:

sudo rm -rf /var/lib/apt/lists/partial
sudo apt-get update -o Acquire::CompressionTypes::Order::=gz

(спасибо @brook_hong из комментариев к части rm)

72
ответ дан 13 November 2014 в 02:37

Это известная проблема, которая усугубляется для клиентов, находящихся за кешами прокси. Некоторые крупные организации и интернет-провайдеры (особенно в удаленных частях мира) имеют прозрачные кэши, о которых вы, возможно, не знаете.

Фундаментальная проблема заключается в том, что формат репозитория apt подвержен условиям гонки при обновлении зеркала. Эта проблема особенно касается репозиториев, которые быстро меняются, например, разрабатываемой версии.

Вы можете отслеживать ход исправления этой ошибки в этой ошибке (отметьте себя как «влияет и на меня тоже» в ошибке) и этот план . Но имейте в виду, что это сложная проблема, и для ее решения может потребоваться более одного выпуска.

133
ответ дан 13 November 2014 в 02:37

Я не знаю, правильное это решение или нет, но я сделал следующее, и сообщение об ошибке исчезло:

После ввода sudo apt-get update в терминал, он дает мне имена некоторых пакетов, которые вызывают ошибку, тогда я сделал следующее:

Диспетчер обновлений (обновление программного обеспечения) → Настройка → Настроить источники программного обеспечения → Другое программное обеспечение [вкладка] → Снимите отметку с пакетов

После нажатия "закрыть" внизу, менеджер обновлений снова начал автоматически проверять наличие обновлений, и я увидел это сообщение: «программное обеспечение на этом компьютере обновлено. Последняя проверка 2 секунды назад»

Kubuntu 12.04

2
ответ дан 13 November 2014 в 02:37

Как следует из @ 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
1
ответ дан 13 November 2014 в 02:37

принятый ответ редко будет работать, если у вас возникнут проблемы с CDN (сетью доставки контента - кешами / зеркалами по всему миру, содержащими списки и пакеты APT). Он будет работать, если а) вы используете PPA или локальные зеркала или б) имеете только одно несоответствие, которое необходимо устранить.

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

Тем не менее, попытаться не повредит, поэтому начните с:

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 , возможно (даже вероятно, если у вас было достаточно несоответствий, чтобы потребовать обновления несколько раз), обновление завершится ошибкой с ошибкой «Несоответствие суммы хэша». Если это так, добавьте - fix-missing в свою команду обновления:

sudo apt-get clean
sudo apt-get upgrade --fix-missing

и повторите попытку. ( apt-get upgrade с - fix-missing также попытается отложить отказавшие пакеты и продолжить выполнение других, поэтому вы должны увидеть некоторый дополнительный прогресс от запуска этого хотя бы один раз.)

Но если это все равно не работает ...

Как и ранее до 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 / * и повторить попытку. Стоит попробовать весь этот процесс два или три раза, особенно если у вас есть десятки или сотни обновляемых пакетов.

5
ответ дан 7 December 2019 в 12:27

Если вы работаете Linux внутри VirtualBox в Windows и с включенным Hyper-V (или WSL 2, который использует Hyper-V) в то же время, вы попадете в мир боли. Это один из симптомов. VirtualBox 6.1 говорит на банке, что он поддерживает Hyper-V, но это просто неправда (по крайней мере, с Windows v2040 2020-08-25). Отключите Hyper-V, и вы золотой. Из другой ответ :

В командной строке с повышенными привилегиями напишите следующее:

Чтобы отключить:

bcdedit /set hypervisorlaunchtype off

Чтобы включить:

bcdedit /set hypervisorlaunchtype auto 

перезапуск для вступления в силу

1
ответ дан 5 January 2021 в 23:53

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

Похожие вопросы: