Apt-Get menggunakan Apt-Cacher NG gagal mengambil paket dengan hash sum mismatch

8

Saya punya mesin yang menggunakan Apt-Cacher NG yang berjalan di komputer lain sebagai proxy caching.

Ketika saya mencoba menjalankan sudo apt-get updatesaya mendapatkan kesalahan berikut:

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.

Direktori /etc/apt/sources.list.d kosong.

Untuk memperbaikinya saya sudah mencoba yang berikut ini tanpa hasil:

Solusi 1:

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

Solusi 2:

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

Ada saran?

Marco Lackovic
sumber
Saya terkadang melihat perilaku ini. Menjalankan pembaruan apt-get sudo beberapa kali berturut-turut membantu dalam kasus ini, tetapi saya tidak tahu mengapa, tidak pernah menyelidiki masalah ini lebih dekat.
oddfellow
1
Ini terjadi juga pada mesin yang tidak menggunakan Apt-Cacher NG. Dalam kasus tersebut, Solusi 1 memperbaiki masalah.
Marco Lackovic

Jawaban:

11

Saya akan menyarankan untuk beralih dari APT-cacher-ng dan memeriksa Squid-deb-proxy.

APT-cacher-ng telah terbukti sangat bermasalah dalam pengalaman saya dan banyak sekali laporan bug yang beredar. Hanya baru-baru ini telah diusulkan lagi untuk mendapatkan pemblokiran di Debian sekarang karena beberapa bug utama terjepit. Untuk Ubuntu saya sudah lama beralih ke Squid-deb-proxy dan saya tidak menyesalinya. Ini adalah alternatif yang bagus dan pelatih APT terbaik yang pernah saya temui.

Untuk Squid-deb-proxy, cukup instal paket squid-deb-proxydan tambahkan domain tujuan yang diizinkan dalam file baru di /etc/squid-deb-proxy/mirror-dstdomain.acl.d. Sebagai bonus, klien dapat menemukan mesin dengan dukungan caching di jaringan lokal dengan squid-deb-proxy-clientmenginstal paket.

gertvdijk
sumber
6

Anda dapat memperbaiki ini sekarang dengan menjalankan:

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

Ini akan menghapus semua file yang rusak di cache Anda.

Untuk membuat permananet ini, silakan lihat di https://www.unix-ag.uni-kl.de/~bloch/acng/html/maint.html#auto-cleanup

Pada dasarnya, Anda dapat mengatur cron pembersihan cache harian untuk melakukan pencocokan checksum penuh pada seluruh cache Anda. Ini akan menangkap semua ukuran buruk dan korupsi lainnya dan membersihkan file-file itu. Saya mengedit /etc/cron.daily/apt-cacher-ngdan menambahkan yang berikut setelah komentar:

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

Ini sama dengan mengklik semua opsi kedaluwarsa pada halaman pemeliharaan kecuali "Abaikan pemeriksaan tajuk ..."

Mark Porter
sumber
1
Ini adalah satu-satunya jawaban yang menghilangkan kesalahan pada sistem saya!
Jan
Saya pikir Anda mungkin memerlukan ?di awal string ekspor Anda.
TafT
3

Saran 1

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

Saran 2

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

Saran 3

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

Dan rekatkan ini di:

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

Sekarang coba:

sudo apt-get update
TuanCharlo
sumber
1
Terima kasih tapi tidak ada yang berhasil.
Marco Lackovic
Bekerja seperti pengaturan pesona no-cache menjadi true! Terima kasih banyak! :)
mhenrixon
3

Saya telah sering berperang dengan SANGAT (1 dari 50 unduhan) dengan kesalahan "Hash Sum Mismatch" dan "Invalid Header" apt-cacher-ngpada Ubuntu Precise 12,04 LTS sejak hari peningkatan distro. Ubuntu Precise menggunakan apt-cacher-ngversi 0.7.2-1, hingga saat ini ada BANYAK perbaikan bug untuk perangkat lunak ini, dan versi yang lebih baru: 0.7.26-1 jauh lebih stabil.

Saya telah menginstal versi Ubuntu Quantal apt-cacher-ngdari packages.ubuntu.com, yaitu versi 0.7.26-1.

Saya sangat merekomendasikan meraih versi masa depan / pengujian apt-cacher-ng, dan menginstal secara manual paket yang lebih baru ini.

Ron Allred
sumber
1

Pembaruan saya akan selalu hampir berhasil - 95% dari file akan diunduh melalui proxy, meninggalkan mungkin ~ 100 file terakhir gagal dengan 'hash sum mismatch', dan tidak ada solusi yang diusulkan yang akan berhasil.

Dan kemudian, hanya untuk nyengir, aku pindah 01proxyke 01proxy.ng, berlari aptitude update, lalu update-managerdan memilih upgrade-distribusi. Itu melanjutkan untuk mengunduh file yang tersisa dari archive.ubuntu.com (~ 70M daripada ~ 1G), dan sisanya dari upgrade berjalan dengan lancar. Setelah reboot, saya memindahkan 01proxy.ng kembali ke 01proxy, dan semuanya kembali normal.

Saya sudah melakukan ini dua kali sekarang, sekali pada server proxy itu sendiri dan sekali pada klien, dan keduanya berhasil dengan indah setelah gagal (pada tanda 95%) ketika melalui proxy.

pengguna117247
sumber
1

Melepaskan /var/cache/apt-cacher-ng/download.virtualbox.orgfolder tidak membantu saya untuk memperbaiki masalah dengan Failed to fetch ... Hash Sum mismatchpada apt-get updateyang mencegah virtualbox-4.3paket dari server Oracle.

Adam Ryczkowski
sumber
0

Saran 4

Berjalan sudo apt-get update && sudo apt-get upgrade -ydi server Apt-Cacher NG dapat memperbaiki masalah. Anda perlu melakukan itu setiap kali masalah terjadi.

Saran 5

Terkadang masalahnya ada di cermin: mengubah cermin /etc/apt/sources.list, baik di server dan klien, dapat memperbaiki masalah ini.

Marco Lackovic
sumber
0

Anda juga dapat menghapus seluruh folder repositori

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

di mana paket dengan ketidakcocokan jumlah hash disimpan.

Pada permintaan apt berikutnya folder baru dengan jumlah hash bersih akan secara otomatis dibuat oleh apt-cacher-ng.

panticz.de
sumber