При проверке обновлений появляется ошибка «Не удалось загрузить информацию о репозитории».
Это то, что подходит под детали:
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.
Просто удалите все содержимое каталога /var/lib/apt/lists
:
sudo rm -rf /var/lib/apt/lists/*
и запустите:
sudo apt-get update
Я столкнулся с той же проблемой в моем Ubuntu 18.04, ниже мой практический опыт:
/etc/apt/apt.conf
/etc/apt/sources.list
sudo rm -rf / var / lib / apt / lists / *
sudo apt autoremove -y && sudo apt autoclean -y
sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y && sudo apt autoclean -y
Готово!
Я решил, что все пакеты не устанавливаются, выполнив эту команду:
sudo apt-get install PACKAGENAME
Для каждого из пакетов. Теперь они установлены, и ошибка «Несоответствие хеш-суммы» исчезла.
У меня была похожая проблема, и я решил ее, открыв приложение «Программное обеспечение и обновления» и на вкладке «Программное обеспечение Ubuntu» изменив значение из "Скачать из" (в этом выпадающем списке попробуйте выбрать, например, Главный сервер, если это не так).
Ничего не помогло. После попытки и предложенных решений, в конце концов, я скачал сломанные пакеты вручную, скопировал их в /var/cache/apt/архивы и удалил сломанные пакеты из /var/cache/apt/архивов/partial.
У меня была точно такая же проблема, и все решения, предоставленные с помощью терминала, не помогли.
Для меня это было через:
Настройки → Программное обеспечение и обновления → Программное обеспечение Ubuntu : Загрузить с: Измените локальный
на Главный сервер
.
Начнется перезагрузка репозиториев и обновление. Когда я вхожу:
sudo apt-get update
После этого никаких проблем не было. Я использую Ubuntu 14.04.4 LTS.
20190112 #Errors #apt #Fix #Updates Failed to fetch ... Hash Sum mismatch
/ и т. Д. / apt
:
/ etc / apt
ключевое слово (а):
Найдя проблемный список, переместите его куда-нибудь на случай, если это не так ' t работа:
sudo mv -f /apt.conf.d/50appstream / tmp
Очистить / 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 "{}" ";"
Попробуйте обновить сейчас, теперь должно работать:
sudo apt-get -y update
Это может произойти, если вы используете маршрутизатор с родительским контролем и не поместили свой raspberry pi в «неуправляемый» список. Что касается меня, я мог видеть, что URL-адрес перенаправлял на круговой домен, управляемый маршрутизатором.
Поэтому я просто добавил свой пи в неуправляемый список, и он работал нормально.
Это это случилось для меня на 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
) помогло или нет! При необходимости используйте их.
У меня была точно такая же проблема, и все решения, предоставленные с помощью терминала, не помогли .
Для меня это было, войдя в:
Настройки → Программное обеспечение и обновления → Другое программное обеспечение: снимите все флажки и нажмите «Закрыть».
Начнется перезагрузка репозиториев и обновление. Когда я вхожу:
sudo apt-get update
После этого никаких проблем не было. Я использую Ubuntu 13.10.
Я только что установил Ubuntu 17.10 и получал ту же ошибку Hash Sum Mismatch для некоторого репозитория. Я пошел в программное обеспечение и проверенный исходный код, как показано ниже, и в дальнейшем не было проблем с загрузкой репозитория с терминала.
Следующие команды могут решить вашу проблему.
sudo rm -R /var/lib/apt/lists/partial/*
а затем
sudo apt-get update && sudo apt-get upgrade
это решит вашу проблему. Я тоже столкнулся с этой проблемой, но вышеприведенные команды решили эту проблему за меня. Поэтому дайте им попробовать.
Если вы находитесь за прокси-сервером, тогда создайте файл с именем 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
Это может произойти, если ваше зеркало не обновлено или обслуживает ошибки из-за перегрузки. Вы можете немного подождать и попробовать еще раз или переключиться на другое зеркало:
У меня все еще была проблема после удаления каталогов и выполнения sudo apt-get update
.
Только следующий шаг решил мою проблему:
sudo sed -i -re 's/\w+\.archive\.ubuntu\.com/archive.ubuntu.com/g' /etc/apt/sources.list
Я не знаю, правильный ли это способ исправить ...
Я нашел решение здесь .
Самый простой способ это исправить:
sudo apt-get clean
sudo apt-get update
Единственное решение, которое сработало для меня, - из unix.stackexchange .
Это происходит из-за известной ошибки это подходит, и решение состоит в том, чтобы обновить с помощью другого метода сжатия, чтобы файлы загружались правильно и контрольная сумма была успешной.
Попробуйте это:
sudo rm -rf /var/lib/apt/lists/partial
sudo apt-get update -o Acquire::CompressionTypes::Order::=gz
(спасибо @brook_hong из комментариев к части rm)
Это известная проблема, которая усугубляется для клиентов, находящихся за кешами прокси. Некоторые крупные организации и интернет-провайдеры (особенно в удаленных частях мира) имеют прозрачные кэши, о которых вы, возможно, не знаете.
Фундаментальная проблема заключается в том, что формат репозитория apt подвержен условиям гонки при обновлении зеркала. Эта проблема особенно касается репозиториев, которые быстро меняются, например, разрабатываемой версии.
Вы можете отслеживать ход исправления этой ошибки в этой ошибке (отметьте себя как «влияет и на меня тоже» в ошибке) и этот план . Но имейте в виду, что это сложная проблема, и для ее решения может потребоваться более одного выпуска.
Я не знаю, правильное это решение или нет, но я сделал следующее, и сообщение об ошибке исчезло:
После ввода sudo apt-get update
в терминал, он дает мне имена некоторых пакетов, которые вызывают ошибку, тогда я сделал следующее:
Диспетчер обновлений (обновление программного обеспечения) → Настройка → Настроить источники программного обеспечения → Другое программное обеспечение [вкладка] → Снимите отметку с пакетов
После нажатия "закрыть" внизу, менеджер обновлений снова начал автоматически проверять наличие обновлений, и я увидел это сообщение: «программное обеспечение на этом компьютере обновлено. Последняя проверка 2 секунды назад»
Kubuntu 12.04
Как следует из @ 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
принятый ответ редко будет работать, если у вас возникнут проблемы с 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 / *
и повторить попытку. Стоит попробовать весь этот процесс два или три раза, особенно если у вас есть десятки или сотни обновляемых пакетов.
Если вы работаете 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
перезапуск для вступления в силу