Como você corrige o apt-get update “incompatibilidade de hash sum”

23

Eu tenho uma caixa virtual do Ubuntu 12.04 que eu instancio usando o Vagrant.

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

Assim que a caixa vagrant executar 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 resolver este erro.

  • Utilizou 3 caixas diferentes do Ubuntu 12.04 de ' link '
  • solução sugerida aqui :

    sudo rm -rf / var / lib / apt / lists / *
    sudo apt-get update
    sudo apt-get clean

  • Removemos e lemos os pacotes dos laboratórios de fantoches

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 de internet.

O fato de que isso tenha afetado vários ubuntu vm em várias conexões de internet me faz pensar que há algo errado com o repositório do ubuntu.

Como posso tentar corrigir esse problema?

Atualizar

Eu tentei limpar '/ var / lib / apt / lists / partial' e rodar o apt-get clean então substituí as fontes em / etc / sources / list usando os mirrors amazon sugerido aqui:

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 duas conexões de internet em casa, ambas com o mesmo erro. Assim que eu levei meu laptop para a conexão de trabalho, o problema desapareceu.

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

Update3

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

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

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

    
por spuder 24.02.2014 / 05:51

2 respostas

6

Descobri isso.

Meus dois computadores são idênticos em todos os aspectos, exceto no meu computador pessoal, eu 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 desinstalei o filtro, o problema desapareceu.

Ainda estou pesquisando se há alguma maneira de tornar apt-get update ignorar as incompatibilidades de soma de hash como uma solução alternativa.

    
por 26.02.2014 / 05:43
13

Primeiro, você deve entender por que erros de incompatibilidade de soma hash ocorrem. Em geral, existem dois motivos:

Primeiramente, alguns repositórios apt usam metadados compactados LZMA (.xz). apt antes que a versão 1.0 não consiga descompactar arquivos LZMA corretamente (algumas vezes) dando erro de incompatibilidade de soma de hash.

Há dois problemas para isso:

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

Confira esta postagem no blog que escrevi sobre essa questão o que explica os dois trabalhos em maior detalhe.

Em segundo lugar, repositórios do APT são inerentemente Os metadados reais do APT são problemáticos e o design torna impossível aos clientes apt fazer o download dos metadados do repositório de forma consistente se o apt-get update acontecer enquanto o repositório estiver sendo atualizado.

Há dois problemas para isso:

  1. Atualize para uma versão mais recente do APT e certifique-se de que o repositório que você cria (ou deseja usar) suporta o Adquirir-por-hash recurso. Isso corrige o problema em seu núcleo, 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, execute primeiro apt-get clean seguido por rm -rf /var/lib/apt/lists/* . Em seguida, execute 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 atualiza enquanto estiver executando apt-get update , você estará bem. Caso contrário, você terá que fazer isso novamente.
por 31.03.2016 / 17:50

Tags