Apt-Get che utilizza Apt-Cacher NG non riesce a recuperare i pacchetti con hash sum non corrispondente


8

Ho una macchina che utilizza Apt-Cacher NG in esecuzione su un'altra macchina come proxy di memorizzazione nella cache.

Quando provo a eseguire sudo apt-get updateottengo i seguenti errori:

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.

La directory /etc/apt/sources.list.d è vuota.

Per risolvere il problema, ho già provato quanto segue senza successo:

Soluzione 1:

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

Soluzione 2:

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

Qualche suggerimento?


Ho visto questo comportamento a volte. L'esecuzione di sudo apt-get update più volte consecutivamente ha aiutato in questo caso, ma non so perché, non ho mai studiato il problema più da vicino.
oddfellow

1
Questo succede anche su macchine che non usano Apt-Cacher NG. In questi casi, la Soluzione 1 risolve il problema.
Marco Lackovic,

Risposte:


11

Suggerirei di abbandonare APT-cacher-ng e dare un'occhiata a Squid-deb-proxy.

APT-cacher-ng ha dimostrato di essere molto difettoso nella mia esperienza e tonnellate di segnalazioni di bug sono eccezionali. Solo di recente è stato proposto di sbloccare Debian ora che alcuni importanti bug sono stati eliminati. Per Ubuntu sono passato a Squid-deb-proxy molto tempo fa e non me ne pento. È un'ottima alternativa e il miglior cacher APT che abbia mai visto.

Per Squid-deb-proxy, basta installare il pacchetto squid-deb-proxye aggiungere domini di destinazione consentiti in un nuovo file in /etc/squid-deb-proxy/mirror-dstdomain.acl.d. Come bonus, i client possono rilevare automaticamente le macchine abilitate alla memorizzazione nella cache nella rete locale avendo squid-deb-proxy-clientinstallato il pacchetto.


6

Puoi risolvere questo problema ora eseguendo:

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

Ciò eliminerà tutti i file rotti nella cache.

Per creare questa permananet, dai un'occhiata a https://www.unix-ag.uni-kl.de/~bloch/acng/html/maint.html#auto-cleanup

Fondamentalmente, è possibile impostare il cron giornaliero di pulizia della cache per eseguire una corrispondenza di checksum completa sull'intera cache. Questo catturerà tutte le dimensioni errate e qualsiasi altra corruzione e pulirà quei file. Ho modificato /etc/cron.daily/apt-cacher-nge aggiunto quanto segue dopo i commenti:

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

Ciò equivale a fare clic su tutte le opzioni di scadenza nella pagina di manutenzione tranne "Salta controlli intestazione ..."


1
Questa è stata l'unica risposta che ha eliminato l'errore sui miei sistemi!
Jan

Penso che potresti aver bisogno di un ?all'inizio della tua stringa di esportazione.
TafT

3

Suggerimento 1

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

Suggerimento 2

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

Suggerimento 3

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

E incollalo in:

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

Ora prova:

sudo apt-get update

1
Grazie, ma nessuno dei tre ha funzionato.
Marco Lackovic,

Ha funzionato come un incantesimo impostando no-cache su true! Grazie mille! :)
mhenrixon,

3

Ho combattuto MOLTO frequentemente (1 su 50 download) con errori "Hash Sum Mismatch" e "Invalid Header" usando apt-cacher-ngsu Ubuntu Precise 12.04 LTS dal giorno dell'aggiornamento della distro. Ubuntu Precise utilizza la apt-cacher-ngversione 0.7.2-1, ad oggi ci sono MOLTE correzioni di bug per questo software e la versione più recente: 0.7.26-1 è molto più stabile.

Ho installato la versione di Ubuntu apt-cacher-ngQuantal da package.ubuntu.com, che è la versione 0.7.26-1.

Consiglio vivamente di afferrare la versione futura / di test apt-cacher-nge di installare manualmente questo pacchetto più recente.


1

I miei aggiornamenti avrebbero quasi sempre avuto successo: il 95% dei file si scaricava attraverso il proxy, lasciando forse gli ultimi ~ 100 file che fallivano con "hash sum mismatch", e nessuna delle soluzioni proposte avrebbe mai funzionato.

E poi, solo per sorrisi e risatine, sono passato 01proxya 01proxy.ng, ho corso e aptitude updatepoi ho update-managerselezionato l'aggiornamento della distribuzione. Ha continuato a scaricare i file rimanenti da archive.ubuntu.com (~ 70M anziché ~ 1G) e il resto dell'aggiornamento è andato liscio. Dopo il riavvio, ho spostato 01proxy.ng su 01proxy e tutto è tornato alla normalità.

L'ho fatto due volte ora, una volta sul server proxy stesso e una volta su un client, ed entrambi sono riusciti magnificamente dopo aver fallito (con quel segno del 95%) quando si passava attraverso il proxy.


1

Rimozione della /var/cache/apt-cacher-ng/download.virtualbox.orgcartella ha aiutarmi a risolvere il problema con Failed to fetch ... Hash Sum mismatchil apt-get updateche impediva virtualbox-4.3pacchetto dal server Oracle.


0

Suggerimento 4

L'esecuzione sudo apt-get update && sudo apt-get upgrade -ysul server Apt-Cacher NG può risolvere il problema. È necessario farlo ogni volta che si verifica il problema.

Suggerimento 5

A volte il problema è sul mirror: la modifica del mirror in /etc/apt/sources.list, sia sul server che sui client, può risolvere questo problema.


0

È inoltre possibile rimuovere l'intera cartella del repository

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

dove viene archiviato il pacchetto con la mancata corrispondenza della somma hash.

Alla successiva richiesta apt una nuova cartella con hash sum pulito verrà automaticamente creata da apt-cacher-ng.

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.