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

Sửa lỗi: "Could not open lock file /var/lib/dpkg/lock" trên apt-get

Nhận thông báo could not open lock file /var/lib/dpkg/lock có thể gây nhầm lẫn vì nó có thể hỏi "are you root?" ngay sau đó ngay cả khi bạn chạy lệnh update với tiền tố sudo. Lỗi này xuất hiện trên gần như mọi hệ thống dùng trình quản lý gói apt-get. Dù bạn cập nhật desktop/laptop chạy các phiên bản Ubuntu hay Raspberry Pi với Raspbian Debian spin, lỗi có thể xảy ra trên mọi nền tảng này.

Tuy nhiên, cách sửa khá đơn giản. Bạn thường có thể bỏ qua câu hỏi về root và đi thẳng vào cốt lõi: hai tiến trình cố truy cập file khóa cùng lúc.

Cách 1: Đảm bảo sudo truy cập được toàn bộ lệnh

Nếu bạn chạy sudo apt-get update && apt-get upgrade, bạn có thể gặp lỗi vì tiến trình thứ hai không có quyền truy cập file /var/lib/dpkg/lock.

Sửa lỗi:  Could not open lock file /var/lib/dpkg/lock  trên apt-get

Thay vào đó, chạy sudo apt-get update && sudo apt-get upgrade xem có khác không. Nếu có, vấn đề đã xong — chỉ vì bạn không cấp quyền đủ cho tiến trình thứ hai. Nhớ rằng lệnh này sẽ update rồi upgrade tất cả gói, nên có thể hỏi xác nhận và mất một chút thời gian.

Nếu không, vấn đề đã được giải quyết hoàn toàn và bạn không cần làm gì thêm.

Cách 2: Xóa file /var/lib/dpkg/lock

Người dùng curl, wget hoặc lệnh tải file riêng biệt cũng có thể phải thêm sudo trước lệnh đó nếu làm việc từ Raspbian vì nó thay thế apt-get trong một số trường hợp. Người dùng Debian thuần túy, Xubuntu, Lubuntu, Linux Mint và các bản định hướng desktop/laptop tương tự không lo lắng về điều này, nhưng đáng thử lại.

Nếu vẫn chưa khắc phục, bạn có thể kiểm tra xem có chương trình nào khác đang truy cập file khi bạn chạy update. Thử sudo lsof /var/lib/dpkg/lock xem có tiến trình nào khác đang mở nó. Nếu có, chỉ cần tắt ứng dụng đó.

Nhớ rằng việc có quyền đọc/ghi để mở file này ngụ ý chương trình đó phải có đặc quyền root, nên bạn cần quyền root để tắt nó. Bạn thậm chí có thể xem Task Manager nếu dùng môi trường desktop hỗ trợ. Click chuột phải tiến trình gây rắc rối và tắt nếu có quyền. Thử lệnh kill hoặc killall từ dòng lệnh cũng được.

Bây giờ thử chạy lệnh apt-get lại xem có khác không, nhưng nếu đã khắc phục bạn không cần làm thêm. Nếu vẫn gặp vấn đề, thử xóa file khóa hoàn toàn. Mặc dù xem là biện pháp cuối, thường không gây vấn đề cho apt-get. Bạn vẫn muốn thử hết cách khác trước vì nó có thể làm rối hệ thống apt.

Khởi động lại đôi khi giúp, nhưng nếu bạn trên server luôn bật hoặc thiết bị Raspbian thì có thể không khả thi. Thử chạy sudo rm /var/lib/dpkg/lock && sudo rm /var/lib/apt/lists/lock, sẽ giải phóng các file apt kiểm tra khi bạn chạy nó. Cẩn thận với tên file, vì chạy rm với quyền root là phá hoại.

Giả sử bạn đã làm sau khi thử hết cách khác, bạn có thể chạy lệnh update lại xem sao. Bạn không nên gặp thêm rắc rối vì file không còn tồn tại, tuy nhiên các routine apt-get sẽ tự rebuild chúng khi chạy.