Vấn đề / Problem
Trong khi sử dụng lệnh apt-get hoặc công cụ quản lý gói APT trong Ubuntu Linux, bạn có thể bắt gặp phải lỗi:
E: Could not get lock /var/lib/dpkg/lock – open (11 Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/) is another process using it?
Tạm dịch là: “Không thể để khóa thư mục quản trị (/var/lib/dpkg/), có phải một tiến trình khác đang sử dụng nó?” trên dòng lệnh. Lỗi này có thể gây phiền nhiễu đặc biệt đối với người dùng Linux (Ubuntu) mới có thể không biết chính xác nguyên nhân gây ra lỗi.
Nguyên nhân
Có rất nhiều nguyên nhân gây ra lỗi này, và bạn sẽ gặp chúng nhiều hơn trong các phiên bản Ubuntu mới nhất như Ubuntu 18.08 chẳng hạn. Vì hệ thống được tự động hóa nhiều hơn, các chương trình có thể tự động sử dụng lệnh APT để tiến hành kiểm tra, update các gói cần thiết. Các phần mềm có thể sử dụng lệnh APT trong Ubuntu là:
- Software Center
- Update Manager
- Apt link installer
- Lệnh apt-get or aptitude command line utilities.
- Synaptic Package Manager
Giải pháp / Solutions
Có khá nhiều cách để giải quyết lỗi này. Cách đảm bảo nhất là bạn nên chờ process đang sử dụng lệnh apt hoàn tất. Nhưng trong bài viết này, vinasupport sẽ giới thiệu 2 cách đơn giản nhất và có lẽ cũng hiệu quả nhất để giải quyết nó ngay lập tức.
1. Tìm và kill process đang sử dụng lệnh APT
Đầu tiên chúng ta sử dụng lệnh ps để tìm các process đang sử dụng APT Command: “ps -A | grep apt”
Sau đó các bạn sử dụng lệnh kill để xóa process này đi.
- $ sudo kill -9 <pid>
- hoặc
- $ sudo kill -SIGKILL <pid>
Như ở ví dụ trên, mình đang tìm dc 2 process đang chiếm dụng lệnh apt. Nên các bạn chạy lệnh kill và thay <pid> lần lượt 3678 và 3682.
2. Xóa file lock
Khi bạn chạy lệnh apt-get hoặc apt, 1 file lock sẽ được tạo trong thư mục như: /var/lib/apt/lists,/var/lib/dpkg và /var/cache/apt/archives. Điều này giúp tránh được quá trình xử lý bằng lệnh apt-get hoặc apt đã bị gián đoạn bởi người dùng hoặc các tiến trình hệ thống khác. Khi quá trình thực hiện xong, file lock sẽ bị xóa. Bạn mới có thể chạy tiếp được lệnh APT.
Hãy thực hiện lần lượt lệnh dưới đây để xóa file lock.
- $ sudo rm /var/lib/dpkg/lock
- $ sudo dpkg --configure -a
- $ sudo rm /var/lib/apt/lists/lock
- $ sudo rm /var/cache/apt/archives/lock