Computer >> Hướng Dẫn Máy Tính >  >> Xử Lý Sự Cố >> Linux

Sửa lỗi: "Could not open file /var/lib/dpkg/status" trên Debian/Ubuntu

Bạn có thể gặp lỗi đáng sợ "could not open file /var/lib/dpkg/status" hoặc tương tự nếu đã lôi thôi trong thư mục /var/lib/dpkg/ và xóa thứ gì đó với quyền root. Hầu hết file trong /var, theo Tiêu chuẩn Hệ thống File Linux (FHS), là tạm thời và thay đổi khi vận hành. Tuy nhiên, không có nghĩa là chúng cần dọn dẹp như cache trình duyệt web.

Vì hầu hết user Linux không cần chạm vào đây, tin tốt là bạn hầu như không bao giờ gặp lỗi này. Người dùng các bản không dùng apt-get (Fedora, Arch) cũng không bao giờ gặp vì lỗi này hoàn toàn đặc thù cho trình quản lý gói này. Tuy nhiên, nếu bạn đang gặp thì hãy đọc tiếp.

Cách 1: Sửa lỗi "could not open file /var/lib/dpkg/status" xuất hiện ngẫu nhiên

Nếu lỗi xuất hiện bất ngờ, gõ ls /var/lib/dpkg/status tại dòng lệnh và xem kết quả.
Sửa lỗi:  Could not open file /var/lib/dpkg/status  trên Debian/Ubuntu

Bạn cũng có thể dùng trình quản lý file đồ họa để duyệt đến đó xem.
Sửa lỗi:  Could not open file /var/lib/dpkg/status  trên Debian/Ubuntu

Đảm bảo thấy file status trong kết quả. Thường chỉ có dòng /var/lib/dpkg/status không có gì sau đó trước khi quay về prompt. Nếu vậy, file còn đó và bạn ổn. Đóng tất cả chương trình sau khi lưu và khởi động lại.

Sau khi reboot, gõ sudo apt-get update rồi sudo apt-get upgrade tại terminal và làm theo hướng dẫn. Sẽ hỏi mật khẩu admin, nhưng sau khi update xong bạn nên ổn. Quan sát các lỗi lạ nếu có.

Nếu file không có, bạn sẽ phải quyết định.

Cách 2: Tái tạo /var/lib/dpkg/status

Một số user backup dữ liệu quan trọng rồi cài lại Linux. Bạn có thể làm vậy, nhưng có cách cứu vãn trước. Có bản backup tự động của /var/lib/dpkg/status và hy vọng không quá nhiều thời gian trôi qua từ khi lỗi xảy ra khiến nó out-of-sync.

Thử chạy sudo cp /var/lib/dpkg/status-old /var/lib/dpkg/status tại terminal. Nếu không báo lỗi, xem có khắc phục được không. Điều này khôi phục bản backup gần nhất của file status, nhưng tiếc là nếu nó quá cũ bạn vẫn còn rắc rối. Tuy nhiên, bạn có thể reboot rồi chạy sudo apt-get update và sudo apt-get upgrade để xem lỗi phụ thuộc nào nảy sinh. Trong trường hợp tốt nhất, không có lỗi nào và bạn tiếp tục làm việc bình thường.

Bạn cũng có thể thử rebuild danh sách status. Gõ sudo touch /var/lib/dpkg/status tạo file rỗng với quyền root, rồi thử sudo apt-get install long-list từ terminal. Có vài script làm tự động, nhưng cách này bản chất giống nhau và tránh nguy cơ chạy script lỗi thời. Cảnh báo: bạn cần nhớ những gì đã cài trên hệ thống để cách này hoạt động, phần mềm sẽ nhắc bạn nhớ.

Bạn cũng có thể thử ls /var/backups/dpkg.status* xem có bản nào dùng được không.

Sửa lỗi:  Could not open file /var/lib/dpkg/status  trên Debian/Ubuntu

Xem danh sách hiện ra. Nếu thấy bản không nén, thử sudo cp /var/backups/dpkg.status.0 /var/lib/dpkg/status xem có khắc phục không. Bạn có thể copy bản khác và chạy gunzip giải nén. Tuy nhiên, nhớ rằng càng quay về quá khứ, rủi ro cập nhật file lỗi thời gây phụ thuộc hỏng càng cao.