Giải quyết cơ sở dữ liệu trạng thái dpkg bị khóa bởi một quy trình khác

Resolve Dpkg Status Database Is Locked Another Process



Hướng dẫn này giải thích cách sửa lỗi cơ sở dữ liệu trạng thái dpkg bị khóa bởi một quy trình khác trong các bản phân phối Linux dựa trên Debian.

Thông thường, lỗi này có nghĩa là quản lý gói đang được sử dụng bởi một quy trình khác, có thể bị kẹt. Lỗi có thể trả về kết quả đầu ra như







cơ sở dữ liệu trạng thái dpkg bị khóa bởi một quy trình khác

Nhưng cùng một nguyên nhân có thể tạo ra các thông báo lỗi khác nhau như được hiển thị trong ảnh chụp màn hình bên dưới.



dpkg: error: dpkg frontend lock bị khóa bởi một quá trình khác



Các triệu chứng khác của cùng một nguyên nhân có thể bao gồm thông báo sau.





Đang chờ khóa bộ nhớ cache: Không thể nhận được khóa / var / lib / dpkg / lock-frontend. Nó được tổ chức bởi quy trình 2839 (apt) ... 30s

Hoặc lỗi được hiển thị bên dưới.



E: Không thể tải khóa / var / lib / dpkg / lock-frontend - mở (11: Tài nguyên tạm thời không khả dụng)
E: Không thể có được khóa giao diện người dùng dpkg (/ var / lib / dpkg / lock-frontend), có phải quy trình khác đang sử dụng nó không?

Trong hầu hết các trường hợp, các ví dụ trước đây báo cáo rằng bạn đang cài đặt, nâng cấp hoặc gỡ bỏ các gói. Trong một số trường hợp, nhiều quản trị viên có thể đang quản lý phần mềm thông qua trình quản lý gói hoặc một quy trình có thể chặn ứng dụng (dpkg) và việc hủy bỏ quy trình đó như được giải thích bên dưới sẽ giải quyết được vấn đề.

Ghi chú: Luôn nhớ sử dụng dpkgđúng cách với sudo .

Cách khắc phục dpkg hoặc apt bị khóa hoặc tạm thời không khả dụng:

Bạn cần xác định quá trình chiếm dpkg hoặc apt để tiêu diệt nó. Để xác định quy trình, bạn có thể sử dụng lệnh bên dưới.

sudo lsof / var / lib / dpkg / lock

Như bạn có thể thấy, ID quy trình (PID) là 16386 . Để giết nó, hãy chạy lệnh bên dưới, thay thế 16386 cho PID thực bằng trình quản lý gói.

sudo kill -9 16386

Bạn cũng có thể chạy lệnh bên dưới để xác định số PID.

sudo lsof / var / cache / apt / archives / lock

Sau đó chạy:

sudo dpkg --configure -a

Một cách khác để xác định quá trình PID và in thông tin về việc sử dụng nó là sử dụng ps lệnh với grep, như hình dưới đây.

ps sang | grep apt

Sửa các lỗi dpkg và apt khác

Trong phần này, bạn có thể tìm thấy một số tổ hợp lệnh để khắc phục một số sự cố apt và dpkg.

Lệnh đầu tiên bạn nên chạy trước khi gặp sự cố là apt-update, như hình bên dưới. Lệnh này cập nhật kho lưu trữ apt.

sudo apt-get cập nhật

Trước đây đã sử dụng dpkg –configure -a lệnh được sử dụng để sửa chữa các vấn đề phụ thuộc.

sudo dpkg --configure -a

Lệnh dưới đây cũng có thể được sử dụng để khắc phục sự cố phụ thuộc.

sudo apt-get -f cài đặt

Để xóa các phần phụ thuộc vô ích, bạn có thể chạy:

sudo apt-get clean

Giới thiệu về trình quản lý gói Debian

Trình quản lý gói có sẵn của Debian bao gồm dpkg, đúng cách , apt-get , năng khiếu , khớp thần kinh,dpkg-deb .

  • dpkg: Dpkg là trình quản lý gói chính cho Debian và các bản phân phối dựa trên nó.
  • đúng cách: là một giao diện người dùng cho dpkg có khả năng tìm nạp các gói và giải quyết các phần phụ thuộc.
  • năng khiếu: Giao diện người dùng tương tác cho apt.
  • Synaptics: Trình quản lý gói đồ họa.
  • dpkg-deb: Một lệnh khác để cài đặt các gói .deb.

Bạn có thể tìm thêm thông tin về tất cả các trình quản lý gói Debian tại https://www.debian.org/doc/manuals/debian-faq/pkgtools.en.html#pkgprogs

Phần kết luận

Như bạn có thể thấy, việc khắc phục sự cố dpkg hoặc apt khá dễ dàng và hầu hết các lỗi đều có nguyên nhân. Các lệnh được giải thích ở trên có thể khắc phục hầu hết các vấn đề liên quan đến các gói bị hỏng hoặc các thủ tục bị gián đoạn. Vì apt và aptitude là các tiền thức của dpkg, nên các biện pháp khắc phục sự cố thường giống nhau. Nếu tất cả các bước được mô tả không hoạt động và lỗi của bạn đang diễn ra trên máy tính để bàn, việc khởi động lại máy tính của bạn phải giải phóng trình quản lý gói. Nhưng tất cả các bước trên, nếu áp dụng đúng, phải thực hiện công việc.

Tôi hy vọng bài viết này giải thích cách giải quyết cơ sở dữ liệu trạng thái dpkg bị khóa bởi một quy trình khác lỗi rất hữu ích.