То принятый ответ редко будет работать, если у вас есть проблемы с 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 cleansudo apt-get update
Обратите внимание, что если вы делаете это в рамках подготовки к apt-get upgrade, возможно (даже вероятно, если у вас было достаточно несоответствий, чтобы потребовать обновления несколько раз), обновление завершится неудачей с собственными ошибками "Несоответствия хэш-суммы". Если да, добавьте --fix-missing к вашей команде обновления:
sudo apt-get cleansudo apt-get upgrade --fix-missing
и попробуйте еще раз. (apt-get upgrade с --fix-missing также будет предпринята попытка приостановить отказывающие пакеты и продолжить другие, так что вы должны увидеть некоторый дополнительный прогресс от выполнения этого по крайней мере один раз.)
Но если это все равно не сработает...
Как и в предыдущем 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/* и попробуй еще раз. Стоит попробовать весь этот процесс два или три раза, особенно если у вас есть десятки или сотни обновляемых пакетов.