Ocorreu um problema ao fazer o download da lista de pacotes devido a um erro de "Hash sum mismatch"


389

Quando procuro atualizações, recebo o erro "Falha ao baixar informações do repositório".

É isso que aparece nos detalhes:

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.

Respostas:


461

Basta remover todo o conteúdo do /var/lib/apt/listsdiretório:

sudo rm -rf /var/lib/apt/lists/*

então corra:

sudo apt-get update

69
Se você remover todos os arquivos, precisará baixá-los novamente. Você pode apenas remover o arquivo inválido para acelerar esse processo.
28413 Behrang

9
Também me lembro disso acontecendo com o Debian. A solução foi alternar repositórios (por exemplo, de us.ubuntu.com para XX.ubuntu.com, onde XX é o código do seu país) ou aguardando. A melhor idéia seria esperar um pouco e tentar novamente mais tarde. A remoção das listas pode corrigir listas quebradas, mas esse raramente é o caso.
f.ardelian

4
Pergunta antiga, mas em algumas distros (como o emdebian), depois de fazer isso, você precisará " mkdir /var/lib/apt/lists/partial" (como root, obviamente.), Ou então não poderá " apt-get update" ou usar o apt.
Archenoth

7
@AlyssaGono, se for uma pasta, você precisará executar o rm com o sinalizador recursivo da seguinte maneira: sudo rm -R /var/lib/apt/lists/*no entanto, mesmo fazer isso não funcionou para mim.
mchid

2
Precisamos do prefixo -rf , para que fique assimsudo rm -rf /var/lib/apt/lists/*
Askar 6/15

127

Esse é um problema conhecido e é exacerbado para clientes atrás de caches de proxy. Algumas grandes organizações e ISPs (especialmente em partes remotas do mundo) têm caches transparentes dos quais você pode não estar ciente.

A questão fundamental é que o formato do repositório apt está sujeito a condições de corrida quando um espelho é atualizado. Esse problema afeta particularmente repositórios que mudam rapidamente, como a versão de desenvolvimento.

Você pode acompanhar o progresso da correção deste bug (marque-se como "me afeta também" no bug) e deste modelo . Mas lembre-se de que é um problema complexo e que pode demorar mais de uma versão para resolver.


4
Esse projeto não está mais acessível; aqui está uma cópia arquivada .
Elias Kagan

16
esse bug também existe no ubuntu 16.04
Scott Stensland 31/03

1
O bug foi marcado como "Correção liberada".

Acabei de alterar meu padrão de espelho para o melhor servidor e seu trabalho para mim.
habibun

99

A maneira mais fácil de corrigir isso é:

sudo apt-get clean
sudo apt-get update

12
Depois de tentar a resposta aceita eu ainda tinha os mesmos erros, tentando isso imediatamente depois corrigiu o problema
Alex

17
Fazer sudo rm -rf /var/lib/apt/lists/*então sudo apto-get cleanresolveu o problema para mim também. Nem trabalhou isolado.
Cam

3
não ajuda no ubuntu 16.04 ... o comentário acima também não ajuda em nada #
Scott Stensland 31/03

3
sudo apt-get cleannão ajudar com 16.04, mas sudo rm -rf /var/lib/apt/lists/*fixa-lo
sdaffa23fdsf

2
Para mim, a resposta aceita não funcionou, mas esta funcionou (Ubuntu 16.04).
JCasso

52

A única solução que funcionou para mim é do unix.stackexchange .

Isso acontece porque existe um bug conhecido e a solução é atualizar com um método de compactação diferente, para que os arquivos sejam carregados corretamente e a soma de verificação seja bem-sucedida.

Faça uma tentativa:

sudo rm -rf /var/lib/apt/lists/partial
sudo apt-get update -o Acquire::CompressionTypes::Order::=gz

(obrigado @brook_hong pelos comentários da parte rm)


9
Esta é a única solução aqui que funcionou para mim. Obrigado.
Cerin

3
Também funcionou para mim. Observe que você não precisa sempre executar este comando. Basta executá-lo uma vez e, em seguida, você pode executar "apt-get update" sem erros.
58516

2
Eu tentei usar a solução genérica de vários fóruns, mas isso funciona imediatamente. Obrigado.
Wkhwilo 26/05

2
Trabalhou para mim no Ubuntu 16.04 / Linux Mint
David Okwii

3
Esta é a única solução que funcionou para mim, estou usando o Ubuntu 16.04
Sunny Shukla 22/18

44

Eu ainda tive o problema depois de remover os diretórios e fazer sudo apt-get update.
Somente a seguinte etapa resolveu meu problema:

sudo sed -i -re 's/\w+\.archive\.ubuntu\.com/archive.ubuntu.com/g' /etc/apt/sources.list

Não sei se esta é a maneira correta de corrigi-lo ...
Encontrei a solução aqui .


13
Deve-se notar que de-part indica um servidor para a Alemanha e que esse script substitui o servidor local pelo servidor principal. Ir para fontes de software na interface gráfica e alternar a configuração seria mais seguro e reversível para muitos usuários. O seguinte deve funcionar para quase todos os países:sudo sed -i 's/[a-z][a-z].archive.ubuntu.com/archive.ubuntu.com/g' /etc/apt/sources.list
LiveWireBT

23

Isso pode acontecer quando seu espelho não está atualizado ou quando erros de sobrecarga são exibidos. Você pode esperar um pouco e tentar novamente ou mudar para outro espelho:


2
Por que um servidor não atualizado ou sobrecarregado faz com que um arquivo com o nome correto seja baixado com êxito (no sentido de que a conexão não termina até que todos os bytes sejam enviados e recebidos), mas esteja corrompido? (Não estou afirmando que isso não aconteça, eu só estou esperando que você pode ser capaz de explicar por que ele faz.)
Elias Kagan

3
@EliahKagan Normalmente, o problema não é que o arquivo esteja corrompido, mas que exista um arquivo de dados (estou simplificando, mas não muito) e um arquivo de índice contendo o hash (impressão digital) do arquivo de dados. Quando os repositórios são atualizados (acontece a cada hora) no servidor, um arquivo após o outro é atualizado. Agora pode acontecer que seu cliente (apt-get ou similar) acesse o servidor quando o arquivo de dados foi atualizado, mas o arquivo de índice ainda não foi atualizado (ou vice-versa). Em seguida, o hash não corresponde ao arquivo de dados e o cliente (falsamente) assume que o arquivo de dados está corrompido.
Patrick Häcker

1
Mudar o espelho funcionou para mim quando nenhuma das respostas acima funcionou.
mango

10

Se você estiver atrás de um proxy, em seguida, criar um arquivo nomeado 99fixbadproxyem /etc/apt/apt.conf.d/:

sudo gedit /etc/apt/apt.conf.d/99fixbadproxy

Cole isso 99fixbadproxye salve-o:

Acquire::http::Pipeline-Depth 0;
Acquire::http::No-Cache true;
Acquire::BrokenProxy    true;

Agora execute o comando update:

sudo apt-get update

1
Uau, eu estava tentando todas as respostas, é estranho quantas questões diferentes parecem resultar no mesmo sintoma.
dualed

1
Sou muito grato a esta resposta
bremen_matt 25/02

5

Os seguintes comandos podem resolver seu problema.

sudo rm -R /var/lib/apt/lists/partial/*

e depois

sudo apt-get update && sudo apt-get upgrade

isso resolverá o seu problema. Também enfrentei o mesmo problema, mas os comandos acima resolveram o problema para mim. Então, experimente.

Referência da solução


4
Eu apenas tentei, e não funcionou; Os primeiros apt-get updatearquivos criados no mesmo local novamente nesse diretório.
Volker Siegel

3

Eu tive exatamente o mesmo problema e todas as soluções fornecidas usando o terminal não ajudaram.

Para mim, foi entrando em:

Configurações → Software e atualizações → Software Ubuntu: Faça o download de: Change Localpara Main Server.

Ele começa a recarregar os repositórios e a atualizar. Quando eu entro:

sudo apt-get update

Depois disso, não houve nenhum problema. Estou usando o Ubuntu 14.04.4 LTS.


1

Não sei se a solução é adequada ou não, mas fiz o seguinte e a mensagem de erro desapareceu:

Depois de digitar o sudo apt-get updateterminal, ele me dá os nomes de alguns pacotes que causam o erro, então eu fiz o seguinte:

Gerenciador de atualização (atualização de software) → Configuração → Configurar fontes de software → Outro software [guia] → Desmarcar os pacotes

Depois de pressionar o botão "fechar", o gerenciador de atualizações começou a verificar a atualização automaticamente novamente e eu vi a mensagem: "o software deste computador está atualizado. Última verificação há 2 segundos".

Kubuntu 12.04


Isso funcionou para mim e nenhuma outra solução postada aqui funcionou. Exceto que eu não tenho a interface do usuário do Ubuntu (executando a linha de comando apenas no WSL). Portanto, para cada pacote em <pkg>que ocorreu o erro, executei o `sudo apt-get install <pkg> '. Estou no Ubuntu 16.04.
Yitz

1

Eu tive exatamente o mesmo problema e todas as soluções fornecidas usando o terminal não ajudaram.

Para mim, foi entrando em:

Configurações → Software e atualizações → Outro software: desmarque todas as caixas e pressione fechar.

Ele começa a recarregar os repositórios e a atualizar. Quando eu entro:

sudo apt-get update

Depois disso, não houve nenhum problema. Estou usando o Ubuntu 13.10.


Isso funciona, no entanto, cega efetivamente a máquina de poder instalar pacotes que não fazem parte da compilação principal (até que essas caixas de seleção sejam reativadas posteriormente) ... ainda necessárias às vezes apenas para obter uma atualização apt-get sem erros que permita instalação de pacotes direcionados
Scott Stensland

1

Tive um problema semelhante e o resolvi abrindo o aplicativo "Software & Updates" e, na guia "Ubuntu Software", alterando o valor de "Download de" (nessa lista suspensa, tente selecionar, por exemplo, Principal Servidor, se não fosse assim).


Sim, única coisa que funcionou para mim. O servidor da Suíça parece estar quebrado.
Eric MORAND 4/17

1

Como segue @ robie-basak, eu usei apt-cacher-ngcomo cache de espelho. Então eu removo o proxy e o problema resolvido.

Eu removo o proxy no arquivo /etc/apt/apt.conf.d/01proxy:

#Acquire::http::Proxy "http://xxx.xx.xx.xx:4321";

Então precisa:

sudo rm -rf /var/lib/apt/lists/*
sudo aptitude update
sudo aptitude upgrade

1

Eu instalei recentemente o Ubuntu 17.10 e estava recebendo o mesmo erro do Hash Sum Mismatch para alguns repositórios. Fui para Software e fonte verificada, como mostrado abaixo, e não houve mais problemas para baixar o repositório do terminal.

Seção Meu software e atualização


0

Isso pode acontecer se você estiver executando um roteador com controle dos pais e não tiver colocado o seu raspberry pi em uma lista "não gerenciada". Para mim, pude ver que o URL estava redirecionando para um domínio do círculo, gerenciado pelo roteador.

Acabei de adicionar meu pi à lista não gerenciada e funcionou bem.


0

Eu resolvi todos os pacotes que não estão sendo instalados executando este comando:

sudo apt-get install PACKAGENAME

Para cada um dos pacotes. Agora eles estão instalados e o erro "Incompatibilidade de soma de hash" desapareceu.


0

Nada funcionou para mim. Depois de tentar e das soluções sugeridas, finalmente, eu baixei os pacotes quebrados manualmente, os copiei em / var / cache / apt / archives e removi os pacotes quebrados de / var / cache / apt / archives / parcial.


0

Eu enfrentei o mesmo problema no meu Ubuntu 18.04, abaixo está minha experiência prática:

  1. Remova o proxy em /etc/apt/apt.conf
  2. Mude para o sources.list oficial do apt /etc/apt/sources.list
  3. Corre sudo rm -rf /var/lib/apt/lists/*
  4. Pacotes limpos sudo apt autoremove -y && sudo apt autoclean -y
  5. Atualização e atualização. sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y && sudo apt autoclean -y

Feito!


0

Isso aconteceu comigo no Ubuntu 16.04, e nenhuma das principais soluções votadas funcionou. A solução estava atualizando pacotes:

sudo apt-get update    # this will fail
sudo apt-get upgrade
sudo apt-get update    # this will succeed

Não tenho certeza se a limpeza de listas antigas ( sudo rm -rf /var/lib/apt/lists/*e / ou sudo apt-get clean) ajudou ou não! Use-os se necessário.


0

20190112 #Errors #apt #Fix #Updates Falha ao buscar ... Hash Sum incompatibilidade

  1. Execute o apt-get e descubra quais palavras-chave procurar em /etc/apt:
    • Atualização do $ sudo apt-get -y
    • ...
    • Erro: 77 Ícones de http://au.archive.ubuntu.com/ubuntu xenial-updates / multiverse DEP-11 64x64
    • Incompatibilidade de soma de hash
    • ...
    • Nesse caso, a palavra-chave é "DEP-11"
  2. Pesquise na /etc/aptárvore as palavras-chave:
    • $ sudo find / etc / apt -type f -exec egrep -in "DEP-11" "{}" / dev / null ";"
    • /apt.conf.d/50appstream:1:## Este arquivo é fornecido por appstreamcli (1) para baixar o DEP-11
    • /apt.conf.d/50appstream:6: deb :: DEP-11 {
    • /apt.conf.d/50appstream:9: Descrição "Metadados $ (RELEASE) / $ (COMPONENT) $ (NATIVE_ARCHITECTURE) DEP-11";
    • /apt.conf.d/50appstream:15: # Ícones de tamanho normal para componentes da GUI descritos no DEP-11
    • /apt.conf.d/50appstream:17: deb :: DEP-11-icons {
    • /apt.conf.d/50appstream:20: Descrição "Ícones $ (RELEASE) / $ (COMPONENT) DEP-11 64x64";
    • /apt.conf.d/50appstream:27: # os metadados DEP-11 YAML.
    • /apt.conf.d/50appstream:28: deb :: DEP-11-icons-hidpi {
    • /apt.conf.d/50appstream:31: Descrição "Ícones $ (RELEASE) / $ (COMPONENT) DEP-11 128x128";
  3. Depois de encontrar a lista ofensiva, mova-a para algum lugar, caso isso não funcione:

    sudo mv -f /apt.conf.d/50appstream /tmp  
    
  4. Limpar /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 "{}" ";"  
    
  5. Tente atualizar agora, ele deve funcionar agora:

    sudo apt-get -y update  
    
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.