Kesulitan mengunduh daftar paket karena kesalahan "Hash sum mismatch"

389

Ketika saya memeriksa pembaruan, saya mendapatkan kesalahan "Gagal Mengunduh Informasi Repositori".

Inilah yang muncul di bawah rincian:

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

Jawaban:

461

Hapus saja semua isi /var/lib/apt/listsdirektori:

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

lalu lari:

sudo apt-get update
Lorem
sumber
69
Jika Anda menghapus semua file, Anda harus mengunduhnya lagi. Anda bisa menghapus file yang tidak valid untuk mempercepat proses ini.
Behrang
9
Saya ingat ini terjadi dengan Debian juga. Solusinya adalah dengan mengganti repositori (mis., Dari us.ubuntu.com ke XX.ubuntu.com di mana XX adalah kode negara Anda) atau menunggu. Ide terbaik adalah menunggu sedikit dan coba lagi nanti. Menghapus daftar mungkin memperbaiki daftar yang rusak, tetapi itu jarang terjadi.
f.ardelian
4
Pertanyaan lama, tetapi pada beberapa distro (Seperti emdebian), setelah melakukan ini Anda harus " mkdir /var/lib/apt/lists/partial" (sebagai root, tentu saja.), Atau Anda tidak bisa " apt-get update" atau menggunakan apt.
Archenoth
7
@AlyssaGono jika itu folder, Anda perlu menjalankan rm dengan flag rekursif seperti: sudo rm -R /var/lib/apt/lists/*namun, bahkan melakukan itu tidak berhasil untuk saya.
mchid
2
Kita perlu awalan -rf , jadi akan terlihat sepertisudo rm -rf /var/lib/apt/lists/*
Askar
127

Ini adalah masalah yang diketahui, dan diperburuk untuk klien di belakang cache proxy. Beberapa organisasi besar dan ISP (terutama di bagian terpencil dunia) memiliki cache transparan yang mungkin tidak Anda sadari.

Masalah mendasar adalah bahwa format repositori apt tunduk pada kondisi ras ketika mirror diperbarui. Masalah ini khususnya mempengaruhi repositori yang berubah dengan cepat, seperti rilis pengembangan.

Anda dapat melacak kemajuan pada perbaikan untuk ini dalam bug ini (tandai diri Anda sebagai "mempengaruhi saya juga" dalam bug) dan cetak biru ini . Namun ketahuilah bahwa ini adalah masalah yang kompleks dan mungkin butuh lebih dari satu rilis untuk diselesaikan.

Robie Basak
sumber
4
Cetak biru itu tidak lagi dapat diakses; inilah salinan yang diarsipkan .
Eliah Kagan
16
bug ini juga ada di ubuntu 16.04
Scott Stensland
1
Bug telah ditandai sebagai "Perbaiki Dirilis".
Saya baru saja mengubah mirror default saya ke server terbaik dan berfungsi untuk saya.
habibun
99

Cara termudah untuk memperbaikinya adalah:

sudo apt-get clean
sudo apt-get update
realhu
sumber
12
Setelah mencoba jawaban yang diterima saya masih memiliki kesalahan yang sama, mencoba ini segera setelah itu memperbaiki masalah
Alex
17
Melakukan sudo rm -rf /var/lib/apt/lists/*kemudian sudo apto-get cleanmemperbaiki masalah untuk saya juga. Tidak ada yang bekerja dalam isolasi.
Cam
3
tidak membantu di ubuntu 16.04 ... juga tidak komentar di atas membantu
Scott Stensland
3
sudo apt-get cleantidak membantu dengan 16,04, tetapi sudo rm -rf /var/lib/apt/lists/*memperbaikinya
sdaffa23fdsf
2
Bagi saya, jawaban yang diterima tidak berfungsi, tetapi yang ini berhasil (Ubuntu 16.04).
JCasso
52

Satu-satunya solusi yang bekerja untuk saya adalah dari unix.stackexchange .

Itu terjadi karena ada bug yang dikenal tepat, dan solusinya adalah memperbarui dengan metode kompresi yang berbeda, sehingga file dimuat dengan benar dan checksum berhasil.

Cobalah ini:

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

(terima kasih @brook_hong dari komentar untuk bagian rm)

Amir Uval
sumber
9
Ini adalah satu-satunya solusi di sini yang berhasil untuk saya. Terima kasih.
Cerin
3
Ini juga berhasil untuk saya. Perhatikan bahwa Anda tidak harus selalu menjalankan perintah ini. Jalankan sekali saja, dan kemudian Anda dapat menjalankan "pembaruan apt-get" tanpa kesalahan.
dalf
2
Saya mencoba menggunakan solusi generik dari berbagai forum tetapi ini berhasil. Terima kasih.
wkhwilo
2
Bekerja untuk saya di Ubuntu 16.04 / linux mint
David Okwii
3
Ini adalah satu-satunya solusi yang bekerja untuk saya, saya menggunakan Ubuntu 16.04
Sunny Shukla
44

Saya masih memiliki masalah setelah menghapus direktori dan melakukan sudo apt-get update.
Hanya langkah berikut yang menyelesaikan masalah saya:

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

Saya tidak tahu apakah ini cara yang tepat untuk memperbaikinya ...
Saya telah menemukan solusinya di sini .

m13r
sumber
13
Orang harus mencatat bahwa de-part mengindikasikan server untuk Jerman dan skrip ini menggantikan ke server lokal dengan server utama. Pergi ke Sumber Perangkat Lunak dengan cara GUI dan beralih pengaturan di sana akan lebih aman dan reversibel untuk banyak pengguna. Yang berikut ini harus bekerja untuk hampir setiap negara:sudo sed -i 's/[a-z][a-z].archive.ubuntu.com/archive.ubuntu.com/g' /etc/apt/sources.list
LiveWireBT
23

Ini bisa terjadi ketika mirror Anda tidak mutakhir atau melayani kesalahan karena kelebihan beban. Anda dapat menunggu sebentar dan mencoba lagi, atau beralih ke cermin lain:

Jorge Castro
sumber
2
Mengapa server tidak up to date, atau kelebihan beban, menyebabkan file dengan nama yang benar berhasil diunduh (dalam arti bahwa koneksi tidak berakhir sampai semua byte dikirim dan diterima), tetapi rusak? (Saya tidak menyatakan itu tidak terjadi, saya hanya berharap Anda mungkin bisa menjelaskan mengapa itu terjadi.)
Eliah Kagan
3
@ ElliKagan Masalahnya biasanya bukan bahwa file itu sendiri rusak, tetapi bahwa ada (saya menyederhanakan tetapi tidak terlalu banyak) file data dan file indeks yang berisi hash (sidik jari) dari file data. Ketika repositori diperbarui (terjadi setiap jam) di server satu file setelah yang lain diperbarui. Sekarang dapat terjadi bahwa klien Anda (apt-get atau serupa) mengakses server ketika file data telah diperbarui tetapi file indeks belum diperbarui (atau sebaliknya), belum. Kemudian hash tidak cocok dengan file data dan klien (salah) mengasumsikan bahwa file data rusak.
Patrick Häcker
1
Mengubah cermin bekerja untuk saya ketika tidak ada jawaban di atas yang berhasil.
mangga
10

Jika Anda berada di belakang proxy, kemudian membuat sebuah file bernama 99fixbadproxydi /etc/apt/apt.conf.d/:

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

Rekatkan ini ke dalam 99fixbadproxydan simpan:

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

Sekarang jalankan perintah pembaruan:

sudo apt-get update
Musaffa
sumber
1
Wow, saya sudah mencoba setiap jawaban, aneh berapa banyak masalah yang berbeda menghasilkan gejala yang sama.
digandakan
1
Saya sangat berhutang budi pada jawaban ini
bremen_matt
5

Perintah berikut dapat menyelesaikan masalah Anda.

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

lalu

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

itu akan menyelesaikan masalah Anda. Saya juga menghadapi masalah yang sama tetapi perintah di atas memecahkan masalah untuk saya. Jadi, cobalah mereka.

Referensi solusi

Shaharia Azam
sumber
4
Saya hanya mencoba, dan itu tidak berhasil; File yang pertama apt-get updatedibuat di tempat yang sama lagi di direktori itu.
Volker Siegel
3

Saya memiliki masalah yang sama persis dan semua solusi yang disediakan menggunakan terminal tidak membantu.

Bagi saya, itu dengan masuk ke:

Pengaturan → Perangkat Lunak & Pembaruan → Perangkat Lunak Ubuntu: Unduh dari: Change Localke Main Server.

Itu mulai memuat ulang repo dan memperbarui. Ketika saya masuk:

sudo apt-get update

Setelah itu, tidak ada masalah sama sekali. Saya menggunakan Ubuntu 14.04.4 LTS.

habibun
sumber
1

Saya tidak tahu apakah itu solusi yang tepat atau tidak, tetapi saya melakukan yang berikut dan pesan kesalahannya hilang:

Setelah mengetik sudo apt-get updatedi terminal, itu memberi saya nama beberapa paket yang menyebabkan kesalahan maka saya melakukan hal berikut:

Perbarui manajer (pembaruan perangkat lunak) → Pengaturan → Konfigurasikan Sumber Perangkat Lunak → Perangkat lunak lain [tab] → Hapus centang paket

Setelah menekan tombol "tutup", manajer pembaruan mulai memeriksa pembaruan secara otomatis lagi dan saya melihat pesan ini: "perangkat lunak pada komputer ini mutakhir. Terakhir diperiksa 2 detik yang lalu."

Kubuntu 12.04

Hassan.J.
sumber
Ini bekerja untuk saya, dan tidak ada solusi lain yang diposting di sini yang berfungsi. Kecuali saya tidak memiliki Ubuntu UI (menjalankan command-line hanya di bawah WSL), Jadi sebagai gantinya, untuk setiap paket di <pkg>mana kesalahan terjadi, saya menjalankan `sudo apt-get install <pkg> '. Saya di Ubuntu 16.04.
Yitz
1

Saya memiliki masalah yang sama persis dan semua solusi yang disediakan menggunakan terminal tidak membantu.

Bagi saya, itu dengan masuk ke:

Pengaturan → Perangkat Lunak & Pembaruan → Perangkat lunak lain: Hapus centang semua kotak dan tekan tutup.

Itu mulai memuat ulang repo dan memperbarui. Ketika saya masuk:

sudo apt-get update

Setelah itu, tidak ada masalah sama sekali. Saya menggunakan Ubuntu 13.10.

Paul London
sumber
Ini bekerja tetapi secara efektif membutakan mesin agar tidak dapat menginstal paket bukan bagian dari core build (sampai kotak-kotak itu diaktifkan kembali nanti) ... namun kadang-kadang diperlukan hanya untuk mencapai pembaruan apt-get error yang memungkinkan yang memungkinkan instal paket yang ditargetkan
Scott Stensland
1

Saya memiliki masalah yang sama dan menyelesaikannya dengan membuka aplikasi "Perangkat Lunak & Pembaruan" dan, di tab "Perangkat Lunak Ubuntu", mengubah nilai "Unduh dari" (dalam daftar drop-down itu, cobalah untuk memilih, misalnya, Main Server kalau tidak seperti itu).

Andrea Pravato
sumber
Ya, hanya hal yang berhasil untuk saya. Server Swiss tampaknya rusak.
Eric MORAND
1

Sebagai follow @ robie-basak, saya menggunakan apt-cacher-ngmirror caching. Jadi saya Hapus proxy dan masalah terpecahkan.

Saya menghapus proxy dalam file /etc/apt/apt.conf.d/01proxy:

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

Maka perlu:

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

Saya baru saja menginstal Ubuntu 17.10 dan mendapatkan kesalahan yang sama dari Hash Sum Mismatch untuk beberapa repositori. Saya pergi ke Perangkat Lunak dan Diperiksa Sumber seperti yang ditunjukkan di bawah ini dan tidak ada masalah lebih lanjut untuk mengunduh repositori dari terminal.

Bagian Perangkat Lunak dan Pembaruan Saya

Rahul Soshte
sumber
0

Ini dapat terjadi jika Anda menjalankan router dengan kontrol parental, dan tidak memasukkan raspberry pi Anda ke daftar "tidak dikelola". Bagi saya, saya bisa melihat url diarahkan ke domain lingkaran, dikelola oleh router.

Jadi saya baru saja menambahkan pi saya ke daftar yang tidak dikelola, dan itu berfungsi dengan baik.

taman brad
sumber
0

Saya telah menyelesaikan semua paket yang tidak diinstal dengan menjalankan perintah ini:

sudo apt-get install PACKAGENAME

Untuk masing-masing paket. Mereka sekarang diinstal dan kesalahan "Hash Sum mismatch" telah hilang.

BiggJJ
sumber
0

Tidak ada yang berhasil untuk saya. Setelah mencoba dan solusi yang disarankan, akhirnya, saya telah mengunduh paket yang rusak secara manual, menyalinnya ke / var / cache / apt / arsip dan menghapus paket yang rusak dari / var / cache / apt / archives / partial.

Ravi Misra
sumber
0

Saya menghadapi masalah yang sama di Ubuntu 18.04 saya, di bawah ini adalah pengalaman praktis saya:

  1. Hapus proxy di /etc/apt/apt.conf
  2. Ubah ke apt sources.list resmi /etc/apt/sources.list
  3. Lari sudo rm -rf /var/lib/apt/lists/*
  4. Paket bersih sudo apt autoremove -y && sudo apt autoclean -y
  5. Perbarui dan Tingkatkan. sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y && sudo apt autoclean -y

Selesai!

JsonBruce
sumber
0

Ini terjadi pada saya di Ubuntu 16.04, dan tidak ada solusi terpilih yang berfungsi. Solusinya adalah memutakhirkan paket:

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

Tidak yakin apakah membersihkan daftar lama ( sudo rm -rf /var/lib/apt/lists/*dan / atau sudo apt-get clean) membantu atau tidak! Gunakan mereka jika perlu.

Mohammad Dehghan
sumber
0

20190112 #Errors #apt #Fix #Updates Gagal mengambil ... Hash Sum tidak cocok

  1. Jalankan apt-get dan cari tahu kata kunci apa yang harus dicari di /etc/apt:
    • $ sudo apt-get -y pembaruan
    • ...
    • Kesalahan: 77 http://au.archive.ubuntu.com/ubuntu xenial-updates / multiverse DEP-11 Ikon 64x64
    • Ketidakcocokan Hash Sum
    • ...
    • Dalam hal ini, kata kunci adalah "DEP-11"
  2. Cari /etc/aptpohon untuk kata kunci:
    • $ sudo find / etc / apt -type f -exec egrep -dalam "DEP-11" "{}" / dev / null ";"
    • /apt.conf.d/50appstream:1:## File ini disediakan oleh appstreamcli (1) untuk mengunduh DEP-11
    • /apt.conf.d/50appstream:6: deb :: DEP-11 {
    • /apt.conf.d/50appstream:9: Deskripsi "$ (RELEASE) / $ (COMPONENT) $ (NATIVE_ARCHITECTURE) DEP-11 Metadata";
    • /apt.conf.d/50appstream:15: # Ikon berukuran normal untuk komponen GUI yang dijelaskan dalam DEP-11
    • /apt.conf.d/50appstream:17: deb :: DEP-11-icons {
    • /apt.conf.d/50appstream:20: Deskripsi "$ (RELEASE) / $ (COMPONENT) DEP-11 64x64 Ikon";
    • /apt.conf.d/50appstream:27: # the DEP-11 YAML metadata.
    • /apt.conf.d/50appstream:28: deb :: DEP-11-icons-hidpi {
    • /apt.conf.d/50appstream:31: Deskripsi "$ (RELEASE) / $ (COMPONENT) DEP-11 128x128 Ikon";
  3. Setelah menemukan daftar yang menyinggung, pindahkan ke suatu tempat kalau-kalau ini tidak berhasil:

    sudo mv -f /apt.conf.d/50appstream /tmp  
    
  4. Bersihkan /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. Coba perbarui sekarang, seharusnya berfungsi sekarang:

    sudo apt-get -y update  
    
Malcolm Boekhoff
sumber