Sự cố khi tải xuống danh sách các gói do lỗi của Hash Hash không khớp


388

Khi tôi kiểm tra các bản cập nhật, tôi gặp lỗi "Không thể tải xuống thông tin kho lưu trữ".

Đây là những gì xuất hiện dưới chi tiết:

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.

Câu trả lời:


460

Chỉ cần xóa tất cả nội dung của /var/lib/apt/liststhư mục:

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

sau đó chạy:

sudo apt-get update

69
Nếu bạn xóa tất cả các tệp, bạn phải tải lại chúng. Bạn chỉ có thể xóa tệp không hợp lệ để làm cho quá trình này nhanh hơn.
Behrang

9
Tôi cũng nhớ điều này xảy ra với Debian. Giải pháp là chuyển đổi các kho lưu trữ (ví dụ: từ us.ubfox.com sang XX.ubfox.com trong đó XX là mã quốc gia của bạn) hoặc chờ đợi. Ý tưởng tốt nhất sẽ là chờ một chút và thử lại sau. Xóa danh sách có thể khắc phục danh sách bị hỏng, nhưng điều đó hiếm khi xảy ra.
f.ardelian

4
Câu hỏi cũ, nhưng trên một số distro (Như emdebian), sau khi làm điều này, bạn sẽ cần " mkdir /var/lib/apt/lists/partial" (Như gốc, rõ ràng.), Hoặc nếu không bạn không thể " apt-get update" hoặc nếu không sử dụng apt.
Archenoth

7
@AlyssaGono nếu đó là một thư mục, bạn cần chạy rm với cờ đệ quy như vậy: sudo rm -R /var/lib/apt/lists/*tuy nhiên, ngay cả việc đó không hiệu quả với tôi.
mchid

2
Chúng ta cần tiền tố -rf , vì vậy nó sẽ giống nhưsudo rm -rf /var/lib/apt/lists/*
Askar

127

Đây là một vấn đề đã biết và trở nên trầm trọng hơn đối với các khách hàng đằng sau bộ đệm proxy. Một số tổ chức và ISP lớn (đặc biệt là ở các vùng xa xôi trên thế giới) có bộ nhớ trong suốt mà bạn có thể không biết.

Vấn đề cơ bản là định dạng kho lưu trữ apt phải tuân theo các điều kiện chủng tộc khi một bản sao được cập nhật. Vấn đề này đặc biệt ảnh hưởng đến các kho lưu trữ thay đổi nhanh chóng, chẳng hạn như bản phát hành phát triển.

Bạn có thể theo dõi tiến trình khắc phục lỗi này trong lỗi này (vui lòng tự đánh dấu là "ảnh hưởng đến tôi" trong lỗi) và bản kế hoạch chi tiết này . Nhưng hãy lưu ý rằng đây là một vấn đề phức tạp và có thể mất nhiều hơn một bản phát hành để giải quyết.


4
Bản thiết kế đó không còn truy cập được nữa; đây là một bản sao lưu trữ .
Eliah Kagan

16
lỗi này cũng tồn tại trên Ubuntu 16.04
Scott Stensland

1
Lỗi này đã được đánh dấu là "Đã phát hành bản sửa lỗi".

Tôi chỉ thay đổi mặc định nhân bản của mình thành máy chủ tốt nhất và nó hoạt động với tôi.
habibun 23/07/17

99

Cách dễ nhất để khắc phục điều này là:

sudo apt-get clean
sudo apt-get update

12
Sau khi thử câu trả lời được chấp nhận, tôi vẫn gặp lỗi tương tự, thử ngay lập tức sau đó đã khắc phục sự cố
Alex

17
Làm sudo rm -rf /var/lib/apt/lists/*rồi cũng sudo apto-get cleansửa được vấn đề cho tôi. Không làm việc trong sự cô lập.
Cam

3
không giúp ích gì cho Ubuntu 16.04 ... bình luận ở trên cũng không giúp được gì
Scott Stensland

3
sudo apt-get cleanđã không giúp với 16.04, nhưng đã sudo rm -rf /var/lib/apt/lists/*sửa nó
sdaffa23fdsf

2
Đối với tôi, câu trả lời được chấp nhận không hoạt động, nhưng câu trả lời này đã hoạt động (Ubuntu 16.04).
JCasso

52

Giải pháp duy nhất hiệu quả với tôi là từ unix.stackexchange .

Nó xảy ra bởi vì có một lỗi đã biết, và giải pháp là cập nhật với một phương pháp nén khác, do đó các tệp tải chính xác và tổng kiểm tra thành công.

Hãy thử xem:

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

(cảm ơn @brook_hong từ các bình luận cho phần rm)


9
Đây là giải pháp duy nhất ở đây làm việc cho tôi. Cảm ơn.
Cerin

3
Nó làm việc cho tôi quá. Lưu ý rằng bạn không phải luôn luôn chạy lệnh này. Chỉ cần chạy một lần và sau đó bạn có thể chạy "apt-get update" mà không gặp lỗi.
hủy

2
Tôi đã thử sử dụng giải pháp chung từ các diễn đàn khác nhau nhưng điều này hoạt động tốt. Cảm ơn bạn.
wkhwilo

2
Làm việc cho tôi trên Ubuntu 16.04 / linux mint
David Okwii

3
Đây là giải pháp duy nhất hiệu quả với tôi, đang sử dụng Ubuntu 16.04
Sunny Shukla

44

Tôi vẫn có vấn đề sau khi loại bỏ các thư mục và làm sudo apt-get update.
Chỉ bước sau đây đã giải quyết vấn đề của tôi:

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

Tôi không biết liệu đây có phải là cách khắc phục đúng không ...
Tôi đã tìm thấy giải pháp ở đây .


13
deMọi người nên lưu ý rằng -part chỉ ra một máy chủ cho Đức và tập lệnh này thay thế cho máy chủ cục bộ bằng máy chủ chính. Chuyển đến Nguồn phần mềm theo cách GUI và chuyển đổi cài đặt sẽ an toàn hơn và có thể đảo ngược cho nhiều người dùng. Những điều sau đây sẽ hoạt động với hầu hết mọi quốc gia:sudo sed -i 's/[a-z][a-z].archive.ubuntu.com/archive.ubuntu.com/g' /etc/apt/sources.list
LiveWireBT

23

Điều này có thể xảy ra khi gương của bạn không cập nhật hoặc phục vụ lỗi do quá tải. Bạn có thể đợi một lúc và thử lại hoặc chuyển sang gương khác:


2
Tại sao máy chủ không cập nhật hoặc bị quá tải, khiến tệp có tên chính xác được tải xuống thành công (theo nghĩa là kết nối không chấm dứt cho đến khi tất cả các byte được gửi và nhận), nhưng bị hỏng? (Tôi không khẳng định điều đó không xảy ra, tôi chỉ hy vọng bạn có thể giải thích lý do tại sao.)
Eliah Kagan

3
@EliahKagan Vấn đề thông thường không phải là bản thân tệp bị hỏng mà là tệp dữ liệu (tôi đang đơn giản hóa nhưng không quá nhiều) và tệp chỉ mục chứa hàm băm (dấu vân tay) của tệp dữ liệu. Khi kho được cập nhật (xảy ra mỗi giờ) trên máy chủ, một tệp sau khi tệp kia được cập nhật. Bây giờ có thể xảy ra rằng máy khách của bạn (apt-get hoặc tương tự) truy cập máy chủ khi tệp dữ liệu đã được cập nhật nhưng tệp chỉ mục chưa được cập nhật (hoặc ngược lại). Sau đó, hàm băm không khớp với tệp dữ liệu và máy khách (giả) cho rằng tệp dữ liệu bị hỏng.
Patrick Häcker

1
Thay đổi gương làm việc cho tôi khi không có câu trả lời nào ở trên.
xoài

10

Nếu bạn đứng sau một proxy, thì hãy tạo một tệp có tên 99fixbadproxytrong /etc/apt/apt.conf.d/:

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

Dán nó vào 99fixbadproxyvà lưu nó:

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

Bây giờ hãy chạy lệnh cập nhật:

sudo apt-get update

1
Wow, tôi đã thử mọi câu trả lời, thật kỳ lạ khi có nhiều vấn đề khác nhau dường như dẫn đến cùng một triệu chứng.
đôi

1
Tôi rất mắc nợ câu trả lời này
bremen_matt

5

Các lệnh sau có thể giải quyết vấn đề của bạn.

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

và sau đó

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

nó sẽ giải quyết vấn đề của bạn Tôi cũng gặp phải vấn đề tương tự nhưng các lệnh trên đã giải quyết vấn đề cho tôi. Vì vậy, hãy cho họ một thử.

Tham khảo giải pháp


4
Tôi chỉ thử, và nó không hoạt động; Các apt-get updatetập tin được tạo đầu tiên ở cùng một nơi một lần nữa trong thư mục đó.
Volker Siegel

3

Tôi đã có cùng một vấn đề chính xác và tất cả các giải pháp được cung cấp bằng cách sử dụng thiết bị đầu cuối không giúp được gì.

Đối với tôi, đó là bằng cách đi vào:

Cài đặt → Phần mềm & Cập nhật → Phần mềm Ubuntu: Tải xuống từ: Change Localđến Main Server.

Nó bắt đầu tải lại repos và cập nhật. Khi tôi nhập:

sudo apt-get update

Sau đó, không có vấn đề gì cả. Tôi đang sử dụng Ubuntu 14.04.4 LTS.


1

Tôi không biết đó có phải là giải pháp phù hợp hay không, nhưng tôi đã làm như sau và thông báo lỗi đã biến mất:

Sau khi gõ sudo apt-get updatevào terminal, nó cho tôi biết tên của một số gói gây ra lỗi sau đó tôi đã làm như sau:

Trình quản lý cập nhật (cập nhật phần mềm) → Cài đặt → Định cấu hình nguồn phần mềm → Phần mềm khác [tab] → Bỏ chọn các gói

Sau khi nhấn vào đáy "đóng", trình quản lý cập nhật bắt đầu tự động kiểm tra cập nhật và tôi thấy thông báo này: "phần mềm trên máy tính này đã được cập nhật. Đã kiểm tra lần cuối 2 giây trước."

Kubfox 12.04


Điều này làm việc cho tôi, và không có giải pháp nào khác được đăng ở đây làm việc. Ngoại trừ tôi không có giao diện người dùng Ubuntu (chỉ chạy dòng lệnh trong WSL), vì vậy, thay vào đó, đối với mỗi gói <pkg>xảy ra lỗi, tôi đã chạy `sudo apt-get install <pkg> '. Tôi đang dùng Ubuntu 16.04.
Yitz

1

Tôi đã có cùng một vấn đề chính xác và tất cả các giải pháp được cung cấp bằng cách sử dụng thiết bị đầu cuối không giúp được gì.

Đối với tôi, đó là bằng cách đi vào:

Cài đặt → Phần mềm & Cập nhật → Phần mềm khác: Bỏ chọn tất cả các hộp và bấm đóng.

Nó bắt đầu tải lại repos và cập nhật. Khi tôi nhập:

sudo apt-get update

Sau đó, không có vấn đề gì cả. Tôi đang sử dụng Ubuntu 13.10.


Điều này vẫn hoạt động nhưng nó có hiệu quả làm cho máy không thể cài đặt các gói không phải là một phần của bản dựng lõi (cho đến khi các hộp kiểm đó được kích hoạt lại sau) ... đôi khi vẫn cần thiết để đạt được bản cập nhật apt-get miễn phí cho phép cài đặt các gói mục tiêu
Scott Stensland

1

Tôi đã gặp một vấn đề tương tự và giải quyết nó bằng cách mở ứng dụng "Phần mềm & Cập nhật" thứ nhất và trong tab "Phần mềm Ubuntu", thay đổi giá trị của "Tải xuống từ" (trong danh sách thả xuống đó, thử chọn, ví dụ: Chính Máy chủ nếu không phải như vậy).


Vâng, chỉ có điều đó làm việc cho tôi. Máy chủ Thụy Sĩ dường như bị hỏng.
Eric MORAND

1

Theo dõi @ robie-basak, tôi đã sử dụng apt-cacher-ngbộ đệm ẩn gương. Vì vậy, tôi loại bỏ proxy và vấn đề được giải quyết.

Tôi xóa proxy trong tệp /etc/apt/apt.conf.d/01proxy:

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

Sau đó cần phải:

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

1

Tôi mới cài đặt Ubuntu 17.10 gần đây và nhận được cùng một lỗi của Hash Sum Mismatch cho một kho lưu trữ. Tôi đã đi đến Phần mềm và Nguồn được kiểm tra như hiển thị bên dưới và không có vấn đề gì nữa khi tải xuống kho lưu trữ từ thiết bị đầu cuối.

Phần mềm và cập nhật của tôi


0

Điều này có thể xảy ra nếu bạn đang chạy một bộ định tuyến với sự kiểm soát của cha mẹ và không đưa pi mâm xôi của bạn vào danh sách "không được quản lý". Đối với tôi, tôi có thể thấy url đang chuyển hướng đến một miền vòng tròn, được quản lý bởi bộ định tuyến.

Vì vậy, tôi chỉ cần thêm pi của tôi vào danh sách không được quản lý, và nó hoạt động tốt.


0

Tôi đã giải quyết tất cả các gói không được cài đặt bằng cách chạy lệnh này:

sudo apt-get install PACKAGENAME

Đối với mỗi gói. Hiện tại chúng đã được cài đặt và lỗi "Hash Sum không khớp" đã biến mất.


0

Không có gì làm việc cho tôi. Sau khi thử và các giải pháp được đề xuất, cuối cùng, tôi đã tải xuống các gói bị hỏng theo cách thủ công, sao chép chúng vào / var / cache / apt / archives và xóa các gói bị hỏng khỏi / var / cache / apt / archives / part.


0

Tôi gặp phải vấn đề tương tự trong Ubuntu 18.04, dưới đây là kinh nghiệm thực tế của tôi:

  1. Xóa proxy trong /etc/apt/apt.conf
  2. Thay đổi thành nguồn apt chính thức. /etc/apt/sources.list
  3. Chạy sudo rm -rf /var/lib/apt/lists/*
  4. Gói sạch sudo apt autoremove -y && sudo apt autoclean -y
  5. Cập nhật và nâng cấp. sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y && sudo apt autoclean -y

Làm xong!


0

Điều này đã xảy ra với tôi trên Ubuntu 16.04 và không có giải pháp được bình chọn hàng đầu nào hoạt động. Giải pháp là nâng cấp các gói:

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

Không chắc chắn nếu làm sạch danh sách cũ ( sudo rm -rf /var/lib/apt/lists/*và / hoặc sudo apt-get clean) có giúp đỡ hay không! Sử dụng chúng nếu cần thiết.


0

20190112 #Errors #apt #Fix #Updates Không thể tìm nạp ... Hash Sum không khớp

  1. Chạy apt-get và tìm ra những từ khóa cần tìm trong /etc/apt:
    • $ sudo apt-get -y cập nhật
    • ...
    • Err: 77 http://au.archive.ubfox.com/ubfox xenial-Updates / multiverse DEP-11 64x64 Biểu tượng
    • Hash Sum không khớp
    • ...
    • Trong trường hợp này, từ khóa là "DEP-11"
  2. Tìm kiếm /etc/aptcây cho (các) từ khóa:
    • $ sudo find / etc / apt -type f -exec egrep -in "DEP-11" "{}" / dev / null ";"
    • /apt.conf.d/50appstream:1:## Tập tin này được cung cấp bởi appstreamcli (1) để tải xuống DEP-11
    • /apt.conf.d/50appstream:6: deb :: DEP-11 {
    • /apt.conf.d/50appstream:9: Mô tả "$ (LIÊN QUAN) / $ (THÀNH PHẦN) $ (NATIVE_ARCHITECTURE) Siêu dữ liệu DEP-11";
    • /apt.conf.d/50appstream:15: # Biểu tượng có kích thước bình thường cho các thành phần GUI được mô tả trong DEP-11
    • /apt.conf.d/50appstream:17: deb :: DEP-11-icon {
    • /apt.conf.d/50appstream:20: Mô tả "$ (LIÊN QUAN) / $ (THÀNH PHẦN) Các biểu tượng DEP-11 64x64";
    • /apt.conf.d/50appstream:27: # siêu dữ liệu YAML của DEP-11.
    • /apt.conf.d/50appstream:28: deb :: DEP-11-icon-hidpi {
    • /apt.conf.d/50appstream:31: Mô tả "$ (LIÊN QUAN) / $ (THÀNH PHẦN) Các biểu tượng DEP-11 128x128";
  3. Đã tìm thấy danh sách vi phạm, hãy chuyển nó đi đâu đó trong trường hợp điều này không hoạt động:

    sudo mv -f /apt.conf.d/50appstream /tmp  
    
  4. Dọn dẹp /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. Hãy thử cập nhật ngay, nó sẽ hoạt động ngay bây giờ:

    sudo apt-get -y update  
    
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.