У меня есть машина, которая использует Apt-Cacher NG, работающий на другой машине, в качестве кеширующего прокси.
Когда я пытаюсь запустить sudo apt-get update
, я получаю следующие ошибки:
W: Failed to fetch gzip:/var/lib/apt/lists/partial/it.archive.ubuntu.com_ubuntu_dists_oneiric-updates_main_source_Sources Hash Sum mismatch
W: Failed to fetch gzip:/var/lib/apt/lists/partial/it.archive.ubuntu.com_ubuntu_dists_oneiric-updates_main_binary-amd64_Packages Hash Sum mismatch
W: Failed to fetch gzip:/var/lib/apt/lists/partial/it.archive.ubuntu.com_ubuntu_dists_oneiric-updates_universe_binary-amd64_Packages Hash Sum mismatch
W: Failed to fetch gzip:/var/lib/apt/lists/partial/it.archive.ubuntu.com_ubuntu_dists_oneiric-updates_main_binary-i386_Packages Hash Sum mismatch
E: Some index files failed to download. They have been ignored, or old ones used instead.
Каталог /etc/apt/sources.list.d пуст.
Чтобы исправить это, я уже попробовал следующее безуспешно:
Решение 1:
sudo rm -fr /var/lib/apt/lists
sudo mkdir -p /var/lib/apt/lists/partial
sudo apt-get clean
sudo apt-get autoclean
Решение 2:
sudo apt-get update -o Acquire::http::No-Cache=True
Любое предложение? [ 1110]
Я бы предложил отключиться от APT-cacher-ng и проверить Squid-deb-proxy.
APT-cacher-ng оказался очень глючным в моем опыте, и множество сообщений об ошибках выдаются. Лишь недавно было предложено снова разблокировать Debian, когда некоторые основные ошибки устранены. Для Ubuntu я давно перешел на Squid-deb-proxy и не жалею об этом. Это отличная альтернатива и лучший APT-кешер, который я когда-либо встречал.
Для Squid-deb-proxy просто установите пакет squid-deb-proxy
и добавьте разрешенные домены назначения в новый файл в /etc/squid-deb-proxy/mirror-dstdomain.acl.d
. В качестве бонуса клиенты могут автоматически обнаруживать машины с поддержкой кэширования в локальной сети, установив пакет squid-deb-proxy-client
.
sudo rm /var/lib/apt/lists/*gzip*
sudo rm /var/lib/apt/lists/partial/*gzip*
sudo apt-get update
sudo rm -f /var/cache/apt/partial/*
sudo rm -f /var/cache/apt/*.deb
sudo apt-get update
sudo touch /etc/apt/apt.conf.d/no-cache
sudo nano /etc/apt/apt.conf.d/no-cache
И вставьте это в:
Acquire::http {No-Cache=True;};
Теперь попробуйте:
sudo apt-get update
Удаление папки /var/cache/apt-cacher-ng/download.virtualbox.org
помогло мне решить проблему с Failed to fetch ... Hash Sum mismatch
в apt-get update
, которая помешала пакету virtualbox-4.3
с сервера Oracle.
Предложение 4
Запуск sudo apt-get update && sudo apt-get upgrade -y
на сервере Apt-Cacher NG может решить проблему. Вы должны делать это каждый раз, когда возникает проблема.
Предложение 5
Иногда проблема в зеркале: изменение зеркала в /etc/apt/sources.list
, как на сервере, так и на клиентах, может решить эту проблему.
Вы можете исправить это прямо сейчас, запустив:
http://your-cache-server:3142/acng-report.html?abortOnErrors=aOe&byPath=bP&byChecksum=bS&truncNow=tN&incomAsDamaged=iad&purgeNow=pN&doExpire=Start+Scan+and%2For+Expiration&calcSize=cs&asNeeded=an#bottom
Это удалит все битые файлы в вашем кеше.
Чтобы создать этот пермананет, взгляните на https://www.unix-ag.uni-kl.de/~bloch/acng/html/maint.html#auto-cleanup [116 ]
По сути, вы можете настроить cron для ежедневной очистки кэша, чтобы он соответствовал полной контрольной сумме всего вашего кэша. Это позволит отследить все плохие размеры и любые другие повреждения и очистить эти файлы. Я отредактировал /etc/cron.daily/apt-cacher-ng
и добавил следующее после комментариев:
export ACNGREQ="abortOnErrors=aOe&byPath=bP&byChecksum=bS&truncNow=tN&incomAsDamaged=iad&purgeNow=pN&doExpire=Start+Scan+and%2For+Expiration&calcSize=cs&asNeeded=an"
Это эквивалентно щелчку всех параметров срока действия на странице обслуживания, за исключением «Пропускать проверки заголовков ...»
Я боролся ОЧЕНЬ часто (1 из 50 загрузок) с ошибками «Hash Sum Mismatch» и «Invalid Header», используя apt-cacher-ng
в Ubuntu Precise 12.04 LTS со дня обновления дистрибутива. Ubuntu Precise использует apt-cacher-ng
версию 0.7.2-1, на сегодняшний день существует множество исправлений ошибок в этом программном обеспечении, и более новая версия: 0.7.26-1 гораздо стабильнее.
Я установил Ubuntu Quantal версию apt-cacher-ng
с packages.ubuntu.com, которая является версией 0.7.26-1.
Я настоятельно рекомендую взять будущую / тестовую версию apt-cacher-ng
и вручную установить этот новый пакет.
Мои обновления всегда почти выполнялись успешно - 95% файлов загружались через прокси-сервер, в результате чего, возможно, последние ~ 100 файлов перестали работать с «несоответствием хэш-суммы», и ни одно из предложенных решений не помогло бы. когда-либо работать.
А потом, просто ради смеха, я переместил 01proxy
в 01proxy.ng
, запустил aptitude update
, затем update-manager
и выбрал дистрибутив-апгрейд. Он продолжил загрузку оставшихся файлов с archive.ubuntu.com (~ 70M, а не ~ 1G), а остальная часть обновления прошла гладко. После перезагрузки я переместил 01proxy.ng обратно на 01proxy, и все вернулось на круги своя.
Я сделал это дважды сейчас, один раз на самом прокси-сервере и один раз на клиенте, и оба успешно справились с задачей после сбоя (при этом значении 95%) при прохождении через прокси.