“Hash mismatch” su apt-get update usando proxy server

Chi utilizza una distribuzione Debian o una sua derivata (Ubuntu, Mint, Pinguy, etc.) dietro ad un proxy server,  come ad esempio all’interno di una rete aziendale, ecc. , nel momento in cui esegue il comando apt-get update per aggiornare la cache dei pacchetti dai repository standard, può riscontrare a console degli errori di questo tipo:

Se la localisation del sistema operativo e in lingua inglese:

….

W: Failed to fetch http://ir.archive.ubuntu.com/ubuntu/dists/…./Packages.bz2  Hash Sum mismatch
….
E: Some index files failed to download, they have been ignored, or old ones used instead.

Se la localisation del sistema operativo e in lingua italiana:
…..
Impossibile ottenere http://it.archive.ubuntu.com/ubuntu/dists/…./Packages.bz2 Somma Hash non corrispondente
…..

Impossibile scaricare alcune file di indice, essi verranno ignorati, oppure si useranno quelli precedenti.
Questo problema è dato dal fatto che nel proxy server è rimasta una cache “vecchia” che prende il sopravvento per alcune intestazioni di file rispetto a quelle presente nel repository pubblico e di conseguenza il checksum fallisce.
Di soluzioni ce ne potrebbero essere diverse, e forse la più corretta sarebbe quella di chiedere all’amministratore del proxy di fare regolarmente una pulizia della cache relativa agli url dei repository di aggiornamento …
Tuttavia, l’operazione più veloce che io conosco ed utilizzo in questi casi, è quella di intervenire sulla macchina locale, ossia quella su cui si presenta il problema (su cui ho il pieno controllo come amministratore – o sono un “sudoer user” -, altrimenti non potrei lanciare ‘apt-get update’ 😉 )
In pratica elimino le liste e i file parziali sul computer locale con i quali viene fatto il checksum rispetto alle liste scaricate dalla rete (sia che queste provengano dal proxy o direttamente dal web..). In tal modo, “forzo” il server proxy a fare un refresh per ricaricarmi le liste complete dei pacchetti, che in questo caso si deve rivolgere all’URL esterno per avere le copie dei file originali aggiornati…
Ecco i pochi e semplici passi da compiere (testato su una Ubuntu Server 10.04 LTS x86_64):
rm -rf /var/lib/apt/lists/* 

mkdir -p /var/lib/apt/lists/partial

apt-get update

Anteporre il comando ‘sudo‘ a tutti i 3 comandi sopracitati se si sta operando con un utente non-root, ma che può essere delegato a ruoli amministrativi (generalmente gruppo “admin” sui sistemi Ubuntu).
Chiunque è pregato di lasciare commenti e/o suggerimenti nel caso in cui ritiene che abbia omesso o descritto qualcosa in maniera imprecisa. Grazie.

Cordiali saluti,
Gabriele
http://www.gabrielezappi.net
GNU/Linux user #380098

Leave a Reply

Your email address will not be published.