Không thể cài đặt bất kỳ bản cập nhật nào thông qua trình quản lý cập nhật / apt-get nâng cấp


12

Tôi đã chạy Ubuntu 12.04 trong vài tuần qua. Gần đây tôi đã cố tải xuống và cài đặt một số tệp thông qua Trình quản lý cập nhật. Nó tìm thấy một vài tập tin, tải chúng xuống, nhưng sau đó không cài đặt được chúng. Nó đã báo lỗi:

installArchives() failed: (Reading database ... 
(Reading database ... 80%
dpkg: unrecoverable fatal error, aborting:
 reading files list for package 'libasn1-8-heimdal': Input/output error

Tôi đã thử sử dụng apt-get upgradenhưng một lỗi tương tự đã được tạo ra:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be upgraded:
  icedtea-6-jre-cacao icedtea-6-jre-jamvm openjdk-6-jre openjdk-6-jre-headless
  openjdk-6-jre-lib
5 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/34.6 MB of archives.
After this operation, 1,024 B of additional disk space will be used.
Do you want to continue [Y/n]? y
(Reading database ... 80%
dpkg: unrecoverable fatal error, aborting:
 reading files list for package 'libasn1-8-heimdal': Input/output error
E: Sub-process /usr/bin/dpkg returned an error code (2)

Mọi sự trợ giúp sẽ rất được trân trọng. Cảm ơn trước.

Chỉnh sửa: Đây là một số thông tin bổ sung có thể hữu ích. Vấn đề ban đầu của tôi là Trung tâm phần mềm Ubuntu sẽ không mở. Tôi thấy rằng Trình quản lý cập nhật và Trình quản lý gói Synaptic cũng không mở được. Tất cả họ đều đưa ra một lỗi dọc theo dòng:

"installArchives() failed: dpkg: error: reading package info file '/var/lib/dpkg/available': Input/output errorError in function:"

Sau nhiều lần tôi dường như đã khắc phục vấn đề đó vì các nhà quản lý gói sẽ mở lại. Khi tôi cố tải xuống và cài đặt bất kỳ bản cập nhật nào từ Trình quản lý cập nhật, tôi đã gặp lỗi ở đầu bài đăng này.


Những tập tin bạn đã tải về? Từ đâu? Người quản lý cập nhật phải làm gì với nó?
mikewhthing

Bạn có thể cố gắng hủy cài đặt (và sau đó cài đặt lại) l gói trong tin nhắn. Nếu thất bại, bạn có thể cố gắng xóa bộ nhớ cache.
John S Gruber

Tôi vẫn đang cố gắng khắc phục điều này, tôi chưa có cơ hội. Tôi sẽ thử hướng dẫn được đưa ra ở đây: goo.gl/oOKqG khi tôi có cơ hội.
dùng64654

Tại sao bạn chọn cài đặt 12.04 mà không phải 14.04? Rốt cuộc, bạn nói rằng bạn đã nhận được nó một vài tuần trước, và Trusty đã ra ngoài được 9 tháng.
John Scott

Câu trả lời:


16

Tôi đã khắc phục vấn đề với các hướng dẫn này .

Vì vậy, giải pháp là như sau:

  1. Đi vào /var/lib/dpkgthư mục
  2. Tạo một bản sao lưu của statustập tin
  3. Chỉnh sửa statustập tin
  4. Tìm kiếm gói đã đưa ra lỗi
  5. Chỉ cần xóa các dòng khỏi gói này (nhưng hãy để tất cả các dòng khác liên quan đến các gói khác ngay cả khi chúng chứa gói bị hỏng trong các trường "Thay thế" hoặc "Phụ thuộc")

    [Càng]

  6. Lưu các thay đổi trong statustệp

  7. Chạy: sudo dpkg --configure -a
  8. Buộc cài đặt lại các phụ thuộc bị thiếu (vì bây giờ, có một số):

    sudo apt-get -f install
    

    Tôi nghĩ rằng nếu gói bị hỏng không phụ thuộc vào bất kỳ gói nào khác (có thể là hiếm), chỉ cần cài đặt lại:

    sudo apt-get install the_package
    
  9. Mọi thứ đều ổn hiện có thể cập nhật, nâng cấp hoặc cài đặt các gói mới!

Cần lưu ý rằng tôi có một vài sự khác biệt đối với giải pháp được đưa ra ở đó. Tệp trạng thái không dễ chỉnh sửa (vì đây là một tệp quan trọng và không bao giờ có nghĩa là phải chỉnh sửa). Mọi chỉnh sửa được thực hiện ở đó nên được thực hiện cẩn thận và tệp phải được sao lưu trước khi bạn thực hiện bất kỳ thay đổi nào.

Tôi đã phải lặp lại các bước 4-8 ba lần (mỗi lần lỗi sẽ giống nhau chỉ với một gói khác nhau). Cuối cùng khi tất cả các gói được gỡ bỏ, tôi đã có thể cài đặt lại chúng và nó đã khắc phục vấn đề của tôi.


Làm thế nào bạn tìm thấy gói nào gây ra lỗi?
Seanny123

@ Seanny123 lần thử trước để cài đặt apt-get có lẽ sẽ hiển thị lỗi. Ví dụ: trong trường hợp của tôi, tôi có "danh sách tệp đọc cho gói 'manpages-dev': Lỗi đầu vào / đầu ra" ngay trước khi lời nhắc được trả về. Trong tệp trạng thái, tôi đã tìm kiếm "Gói: manpages-dev" và xóa các dòng lên đến dòng "Gói:" tiếp theo. Sau đó, tôi đã phải thực hiện thủ công "apt-get install manpages-dev" và sau đó "apt-get dist-nâng cấp" không thành công của tôi đã hoàn thành mà không gặp lỗi. (Cảm ơn người dùng64654!)
Peter Hansen

2

Nó có thể xảy ra rằng đĩa bị hỏng với inodes.

Với một đĩa CD trực tiếp, hãy chạy lệnh này

sudo fdisk -l

lưu ý đĩa và phân vùng, /dev/dsb1 sau đó có thể sửa chữa nó:

sudo fsck -y /dev/sdb1

Khởi động lại và trở lại hệ thống

sudo apt-get -f install
sudo apt-get update
sudo apt-get upgrade

Tôi đã thực hiện fsck thông qua sudo shutdown -rF nowvà, không có gì thêm, mọi thứ đã ổn trở lại.
Klaws
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.