Como você corrige a atualização do apt-get "Incompatibilidade de soma de hash"

23

Eu tenho uma caixa virtual Ubuntu 12.04 vm que eu instanciao usando o Vagrant.

git clone https://github.com/spuder/puppet-gitlab
vagrant up

Assim que a caixa vagrant é executada apt-get update, recebo o seguinte erro.

...
W: Failed to fetch gzip:/var/lib/apt/lists/partial/apt.puppetlabs.com_dists_precise_main_binary-amd64_Packages  Hash Sum mismatch
W: Failed to fetch gzip:/var/lib/apt/lists/partial/apt.puppetlabs.com_dists_precise_main_binary-i386_Packages  Hash Sum mismatch
W: Failed to fetch gzip:/var/lib/apt/lists/partial/apt.puppetlabs.com_dists_precise_dependencies_binary-i386_Packages  Hash Sum mismatch
W: Failed to fetch http://br.archive.ubuntu.com/ubuntu/dists/precise-updates/restricted/binary-i386/Packages  404  Not Found

Coisas que tentei solucionar esse erro.

  • Usou 3 caixas diferentes do ubuntu 12.04 de ' http://www.vagrantbox.es '
  • solução sugerida aqui :

    sudo rm -rf / var / lib / apt / lists / *
    atualização do
    sudo apt-get sudo apt-get clean

  • Removidos e lidos os pacotes dos laboratórios de marionetes

Eu também tentei sugestões semelhantes que encontrei nas primeiras páginas do google. Eu até tentei vários computadores e várias conexões à Internet.

O fato de isso ter afetado vários ubuntu vm em várias conexões de internet me faz pensar que há algo errado com o repo ubuntu.

De que outra forma posso tentar corrigir esse problema?

Atualizar

Tentei limpar '/ var / lib / apt / lists / parcial' e executar o apt-get clean, substituindo as fontes em / etc / sources / list usando os espelhos da amazon sugeridos aqui:

Eu ainda recebo um erro semelhante

Fetched 18.9 MB in 10s (1,865 kB/s)                                                                                                                                                                            
W: Failed to fetch bzip2:/var/lib/apt/lists/partial/us-west-1.ec2.archive.ubuntu.com_ubuntu_dists_precise_main_binary-amd64_Packages  Hash Sum mismatch
W: Failed to fetch bzip2:/var/lib/apt/lists/partial/us-west-1.ec2.archive.ubuntu.com_ubuntu_dists_precise_universe_binary-amd64_Packages  Hash Sum mismatch
W: Failed to fetch bzip2:/var/lib/apt/lists/partial/us-west-1.ec2.archive.ubuntu.com_ubuntu_dists_precise_multiverse_binary-amd64_Packages  Hash Sum mismatch
W: Failed to fetch bzip2:/var/lib/apt/lists/partial/us-west-1.ec2.archive.ubuntu.com_ubuntu_dists_precise_main_binary-i386_Packages  Hash Sum mismatch
E: Some index files failed to download. They have been ignored, or old ones used instead.

Update2

Eu tenho 2 conexões de internet em casa, os dois deram o mesmo erro. Assim que levei meu laptop à minha conexão de internet de trabalho, o problema desapareceu.

Ainda estou curioso para entender por que minha conexão à Internet faria alguma diferença.

Update3

Veja minha resposta abaixo para uma explicação. Meu filtro de internet estava corrompendo o download.

Vou reformular a pergunta, pois ainda não há respostas.

Existe uma maneira de substituir as incompatibilidades de Hash Sum no apt-get?

spuder
fonte
você limpou o cache como sugerido aqui ?
Kiwy
A sua distribuição também inclui apt-cacher NG? porque parece confiável
Kiwy
Eu me deparei com esse blog e verifiquei que o apt-cache-ng não está instalado. O problema desapareceu quando tentei um hipervisor diferente em uma conexão de internet diferente.
Spuder
talvez uma implementação interrompida de um hash específico em um hypervisor, mas ainda assim seja muito estranho.
Kiwy
Sua solução também funcionou para mim. Eu estava executando um servidor TinyProxy hospedado na AWS e tinha alguns filtros de anúncios configurados. Depois de me livrar do proxy no apt.conf, tudo funciona bem.

Respostas:

20

Primeiro, você deve entender por que ocorrem erros de incompatibilidade de soma de hash. Em geral, existem 2 razões:

Primeiramente, alguns repositórios do apt usam metadados compactados LZMA (.xz). O apt antes da versão 1.0 falha ao descompactar os arquivos LZMA corretamente (algumas vezes), causando o erro de incompatibilidade de soma de hash.

Existem duas soluções para isso:

  1. Diga ao seu cliente apt para não usar metadados compactados XZ
  2. Atualize o apt no seu sistema para uma versão mais recente que 1.0

Confira esta postagem do blog que escrevi sobre esse problema, que explica as soluções alternativas em mais detalhes.

Em segundo lugar, os repositórios do APT são inerentemente atrevidos . Os metadados reais do APT são defeituosos e o design dos mesmos torna impossível para os clientes apt fazer o download dos metadados do repositório de maneira consistente se isso apt-get updateacontecer enquanto o repositório estiver sendo atualizado.

Existem duas soluções para isso:

  1. Atualize para uma versão mais recente do APT e verifique se o repositório que você cria (ou deseja usar) suporta o recurso Adquirir por hash . Isso corrige o problema em sua essência, mas não é possível em alguns casos, se você não controlar o repositório.
  2. Você pode excluir os metadados armazenados em cache no seu sistema e tentar novamente. Para fazer isso, primeiro execute, apt-get cleanseguido de rm -rf /var/lib/apt/lists/*. Em seguida, corra apt-get update. Isso fará o download novamente de todos os metadados. Se o repositório ao qual você está tentando se conectar não se atualizar enquanto estiver em execução apt-get update, você estará bem. Caso contrário, você precisará fazer isso novamente.
Joe Damato
fonte
Esta é a única solução que funcionou para mim! Obrigado pela publicação do blog
Amir Uval
Você comentou que é melhor que seja a versão mais recente. Poderia me dizer como atualizá-lo?
Amir Uval
Como exatamente você usa o recurso Adquirir por hash? Eu já vi blogs sobre isso, mas eles não dizem qual arquivo exatamente para colocar e não mostram um exemplo.
LINUX G33NYUS
6

Descobri isso.

Meus dois computadores são idênticos em todos os aspectos, exceto no meu computador pessoal que instalei um filtro de internet.

O filtro de internet k9 instalou uma extensão do kernel que aparentemente mexe com o tráfego.

Assim que eu desinstalei o filtro, o problema desapareceu.

Ainda estou pesquisando se há alguma maneira de apt-get updateignorar as incompatibilidades da soma do Hash como solução alternativa.

spuder
fonte
Isso realmente faz muito sentido, porque recentemente comecei a ter esse problema depois de instalar o k9; mas eu não fiz a conexão na época. Uma solução alternativa seria legal, porque eu obviamente preferiria não desativar o filtro (afinal, está lá por um motivo).
MuffinTheMan
Sim, mas como eu poderia fazer isso (retirar o filtro), porque eu tenho mesmo problema de vocês, mas de qualquer forma eu ainda estou stucked em
Baixe a versão mais recente do k9 no site deles. Haverá um desinstalador dentro do pacote de instalação.
spuder