Come si corregge l'aggiornamento apt-get "Mancata corrispondenza somma hash"


23

Ho una virtual box Ubuntu 12.04 vm che istanzio usando Vagrant.

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

Non appena viene eseguita la casella del vagabondo apt-get update, viene visualizzato il seguente errore.

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

Cose che ho provato a aggirare questo errore.

  • Ho usato 3 diversi box Ubuntu 12.04 da ' http://www.vagrantbox.es '
  • soluzione suggerita qui :

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

  • Rimossi e preparati i pacchetti dei laboratori di burattini

Ho anche provato suggerimenti simili che ho trovato nelle prime pagine di google. Ho anche provato più computer e più connessioni Internet.

Il fatto che ciò abbia influito su più Ubuntu VM su più connessioni Internet mi fa pensare che ci sia qualcosa di sbagliato nel repository Ubuntu.

In quale altro modo posso provare a risolvere questo problema?

Aggiornare

Ho provato a ripulire '/ var / lib / apt / lists / partial' ed eseguire apt-get clean, quindi ho sostituito i sorgenti in / etc / sources / list usando i mirror di Amazon suggeriti qui:

Ricevo ancora un errore simile

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

Ho 2 connessioni Internet a casa, entrambe hanno dato lo stesso errore. Non appena ho portato il mio laptop alla mia connessione Internet di lavoro, il problema è scomparso.

Sono ancora curioso di capire perché la mia connessione Internet possa fare la differenza.

Update3

Vedi la mia risposta qui sotto per una spiegazione. Il mio filtro Internet ha danneggiato il download.

Riformulerò la domanda poiché non ci sono ancora risposte.

C'è un modo per ignorare le discrepanze di Hash Sum in apt-get?


hai pulito la cache come suggerito qui ?
Kiwy,

La tua distribuzione include anche apt-cacher NG? perché sembra inaffidabile
Kiwy

Mi sono imbattuto in quel blog e ho verificato che apt-cache-ng non è installato. Il problema è scomparso quando ho provato un hypervisor diverso su una diversa connessione Internet.
spuder

forse un'implementazione non corretta di un hash specifico su un hypervisor, ma è ancora molto strano.
Kiwy,

La tua soluzione ha funzionato anche per me. Stavo correndo attraverso un server TinyProxy ospitato su AWS e avevo installato alcuni filtri pubblicitari. Una volta che mi sono liberato del proxy in apt.conf, tutto funziona bene.

Risposte:


20

Innanzitutto, dovresti capire perché si verificano errori di mancata corrispondenza della somma hash. In generale, ci sono 2 motivi:

In primo luogo, alcuni repository apt utilizzano metadati compressi LZMA (.xz). apt prima della versione 1.0 non riesce a decomprimere correttamente gli archivi LZMA (a volte) dando l'errore di mancata corrispondenza della somma hash.

Ci sono due soluzioni per questo:

  1. Di 'al tuo client apt di non usare metadati compressi XZ
  2. Aggiorna apt sul tuo sistema a una versione più recente di 1.0

Dai un'occhiata a questo post sul blog che ho scritto su questo problema, che spiega entrambi i modi per aggirare in maggiore dettaglio.

In secondo luogo, i repository APT sono intrinsecamente audaci . I metadati APT effettivi sono difettosi e la loro progettazione rende impossibile per i client apt scaricare i metadati del repository in modo coerente se ciò apt-get updateaccade durante l'aggiornamento del repository.

Ci sono due soluzioni per questo:

  1. Esegui l'upgrade a una versione più recente di APT e assicurati che il repository creato (o che desideri utilizzare) supporti la funzione Acquisisci per hash . Ciò risolve il problema al suo interno, ma in alcuni casi non è possibile se non si controlla il repository.
  2. È possibile eliminare i metadati memorizzati nella cache sul sistema e riprovare. Per fare questo, prima esecuzione apt-get cleanseguita da rm -rf /var/lib/apt/lists/*. Quindi, corri apt-get update. Questo scaricherà nuovamente tutti i metadati. Se il repository a cui stai tentando di connetterti non si aggiorna da solo mentre sei in esecuzione apt-get update, starai bene. Altrimenti, dovrai farlo di nuovo.

Questa è l'unica soluzione che ha funzionato per me! Grazie per il post sul blog
Amir Uval,

Hai commentato che è meglio essere l'ultima versione. Potresti dirmi come aggiornarlo?
Amir Uval,

Come usi esattamente la funzione Acquisisci per hash? Ho visto dei blog a riguardo, ma non dicono esattamente quale file inserire e non mostrano un esempio.
LINUX G33NYUS

6

Capito.

I miei due computer sono identici in ogni modo tranne che sul mio personal computer ho installato un filtro Internet.

Il filtro Internet K9 ha installato un'estensione del kernel che apparentemente fa casino con il traffico.

Non appena ho disinstallato il filtro, il problema è scomparso.

Sto ancora cercando se c'è un modo per apt-get updateignorare la mancata corrispondenza della somma di hash come soluzione alternativa.


Questo in realtà ha molto senso, perché di recente ho iniziato a riscontrare questo problema dopo aver installato k9; ma al momento non ho effettuato la connessione. Una soluzione alternativa sarebbe buona, perché ovviamente preferirei non disabilitare il filtro (dopotutto, è lì per un motivo).
MuffinTheMan,

Sì, ma come potrei farlo (rimuovere il filtro), perché ho lo stesso problema con te, ma comunque sono ancora bloccato

Scarica l'ultima versione di k9 dal loro sito Web. Ci sarà un programma di disinstallazione all'interno del pacchetto di installazione.
spuder,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.