O Apt-Get usando o Apt-Cacher NG falha ao buscar pacotes com incompatibilidade de soma de hash

8

Eu tenho uma máquina que está usando o Apt-Cacher NG em execução em outra máquina como proxy de cache.

Quando tento executar sudo apt-get update, obtenho os seguintes erros:

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.

O diretório /etc/apt/sources.list.d está vazio.

Para corrigir isso, eu já tentei o seguinte sem sucesso:

Solução 1:

sudo rm -fr /var/lib/apt/lists
sudo mkdir -p /var/lib/apt/lists/partial
sudo apt-get clean
sudo apt-get autoclean

Solução 2:

sudo apt-get update -o Acquire::http::No-Cache=True

Alguma sugestão?

Marco Lackovic
fonte
Eu já vi esse comportamento algumas vezes. A execução do sudo apt-get update várias vezes consecutivamente ajudou nesse caso, mas não sei por que, nunca investiguei esse problema mais de perto.
Oddellow
11
Isso acontece também em máquinas que não usam o Apt-Cacher NG. Nesses casos, a solução 1 corrige o problema.
Marco Lackovic

Respostas:

11

Eu sugeriria mudar do APT-cacher-ng e verificar o Squid-deb-proxy.

O APT-cacher-ng provou ser muito problemático na minha experiência e toneladas de relatórios de erros são excelentes. Apenas recentemente foi proposto novamente para ser desbloqueado no Debian agora que alguns dos principais erros são esmagados. Para o Ubuntu, mudei para o Squid-deb-proxy há muito tempo e não me arrependo. É uma ótima alternativa e o melhor APT-cacher que eu já vi.

Para o Squid-deb-proxy, basta instalar o pacote squid-deb-proxye adicionar domínios de destino permitidos em um novo arquivo no /etc/squid-deb-proxy/mirror-dstdomain.acl.d. Como um bônus, os clientes podem descobrir automaticamente máquinas habilitadas para cache na rede local squid-deb-proxy-client, instalando o pacote.

gertvdijk
fonte
6

Você pode corrigir isso agora executando:

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

Isso excluirá todos os arquivos quebrados no seu cache.

Para criar este permananet, consulte https://www.unix-ag.uni-kl.de/~bloch/acng/html/maint.html#auto-cleanup

Basicamente, você pode configurar o cron de limpeza diária do cache para fazer uma correspondência completa da soma de verificação em todo o cache. Isso pegará todos os tamanhos ruins e qualquer outra corrupção e limpará esses arquivos. Eu editei /etc/cron.daily/apt-cacher-nge adicionei o seguinte após os comentários:

export ACNGREQ="abortOnErrors=aOe&byPath=bP&byChecksum=bS&truncNow=tN&incomAsDamaged=iad&purgeNow=pN&doExpire=Start+Scan+and%2For+Expiration&calcSize=cs&asNeeded=an"

Isso equivale a clicar em todas as opções de validade na página de manutenção, exceto em "Ignorar verificações de cabeçalho ..."

Mark Porter
fonte
11
Esta foi a única resposta que se livrou do erro nos meus sistemas!
Jan
Eu acho que você pode precisar de um ?no início de sua cadeia de exportação.
TafT 26/10/16
3

Sugestão 1

sudo rm /var/lib/apt/lists/*gzip*
sudo rm /var/lib/apt/lists/partial/*gzip*
sudo apt-get update

Sugestão 2

sudo rm -f /var/cache/apt/partial/*
sudo rm -f /var/cache/apt/*.deb
sudo apt-get update

Sugestão 3

sudo touch /etc/apt/apt.conf.d/no-cache
sudo nano /etc/apt/apt.conf.d/no-cache

E cole isso em:

Acquire::http {No-Cache=True;};

Agora tente:

sudo apt-get update
SirCharlo
fonte
11
Obrigado, mas nenhum dos três funcionou.
Marco Lackovic
Funcionou como um encanto definindo no-cache como true! Graças um milhão! :)
mhenrixon
3

Venho lutando MUITO frequentemente (1 em 50 downloads) com os erros "Hash Sum Mismatch" e "Invalid Header" usando o apt-cacher-ngUbuntu Precise 12.04 LTS desde o dia da atualização da distribuição. O Ubuntu Precise usa a apt-cacher-ngversão 0.7.2-1, até o momento existem MUITAS correções de bugs neste software, e a versão mais recente: 0.7.26-1 é muito mais estável.

Eu instalei a versão Ubuntu Quantal apt-cacher-ngdo packages.ubuntu.com, que é a versão 0.7.26-1.

Eu recomendo pegar a versão futura / de teste apt-cacher-nge instalar manualmente este pacote mais recente.

Ron Allred
fonte
1

Minhas atualizações sempre eram quase bem-sucedidas - 95% dos arquivos eram baixados por meio do proxy, deixando talvez os últimos ~ 100 arquivos com falha 'incompatibilidade de soma de hash' e nenhuma das soluções propostas funcionaria.

E então, apenas para grins-e-risadinhas, mudei-me 01proxyaté 01proxy.ng, correu aptitude update, então update-managere selecionou a distribuição-upgrade. Ele passou a baixar os arquivos restantes do arquivo archive.ubuntu.com (~ 70M em vez de ~ 1G), e o restante da atualização ocorreu sem problemas. Após a reinicialização, mudei 01proxy.ng de volta para 01proxy e tudo voltou ao normal.

Eu já fiz isso duas vezes agora, uma vez no próprio servidor proxy e uma vez em um cliente, e ambos tiveram sucesso após uma falha (na marca de 95%) ao passar pelo proxy.

user117247
fonte
1

Removendo a /var/cache/apt-cacher-ng/download.virtualbox.orgpasta me ajudar a resolver o problema com Failed to fetch ... Hash Sum mismatcha apt-get updateque impediu virtualbox-4.3pacote do servidor Oracle.

Adam Ryczkowski
fonte
0

Sugestão 4

A execução sudo apt-get update && sudo apt-get upgrade -yno servidor Apt-Cacher NG pode corrigir o problema. Você precisa fazer isso toda vez que o problema ocorrer.

Sugestão 5

Às vezes, o problema está no espelho: trocar o espelho /etc/apt/sources.list, tanto no servidor quanto nos clientes, pode corrigir esse problema.

Marco Lackovic
fonte
0

Você também pode remover toda a pasta do repositório

rm -r /var/cache/apt-cacher-ng/<repository_folder>

onde o pacote com incompatibilidade de soma de hash é armazenado.

Na próxima solicitação do apt, uma nova pasta com soma de hash limpa será criada automaticamente pelo apt-cacher-ng.

panticz.de
fonte