Khi chúng ta đang cố cài đặt phần mềm trên hệ điều hành Ubuntu mà lại gặp lỗi ” could not get lock /var/lib/dpkg/lock – open (11: resource temporarily unavailable) ” mà không hề biết lỗi này là xuất phát từ đâu và hướng khắc phục lỗi này như thế nào .

 

Với lỗi này thì chúng ta có thể dịch ra là : Không thể nhận khóa / var / lib / apt / list / lock – open (11: Tài nguyên tạm thời không khả dụng . Khi dịch ra được chúng ta cũng hiểu được 1 phần lỗi này thông báo là nguyên nhân do sao rồi chứ .

Cách sửa lỗi could not get lock /var/lib/dpkg/lock :

Với lỗi này thì chúng ta đang có 2 cách để giúp bạn khắc phục được nó đó bao gồm :

Cách 1 :

Như chúng ta đã dịch ở trên thông báo lỗi đó là tài nguyên tạm thời không khả dụng hay nói cách khác đó là đang có trình khác đang sử dụng tài nguyên của APT package management tool . Chính vì thế khi chúng ta thực hiện lệnh APT thì chắc chắn sẽ hiển thị thông báo lỗi . Chúng ta cần thực hiện kiểm tra xem Ubuntu hoặc trình quản lý Synaptic có hoạt động hay không .

 

Bước 1 : Chúng ta cần thực hiện dòng lệnh ps aux | grep -i apt để thực hiện để tìm ra phần mềm sử dụng APT trước nhé . Trong lệnh này sẽ giúp chúng ta nhìn thấy được ID quá trình là 7343

 

 

Bước 2 :  Tiếp tục để xóa bỏ hay làm dừng chương trình đó thì chúng ta chỉ cần thực hiện 2 dòng lệnh sau :

sudo kill -9 <process id>
sudo killall apt apt-get


Như thế là chúng ta đã khắc phục được lỗi could not get lock /var/lib/dpkg/lock rồi nhé . Tuy nhiên hôm nay mình sẽ hướng dẫn thêm 1 cách nữa có thể giúp bạn loại bỏ được lỗi trên nhé .

Cách 2 :

Trong trường hợp này, nguyên nhân gốc là từ file khóa. Các file khóa được sử dụng để ngăn hai hoặc nhiều quá trình sử dụng cùng một dữ liệu. Khi các lệnh apt hoặc apt được chạy, chúng sẽ tạo các tệp khóa ở một vài nơi. Nếu lệnh apt trước đó không được kết thúc đúng cách, các tệp khóa sẽ không bị xóa và do đó chúng ngăn chặn mọi trường hợp mới của lệnh apt / apt-get.

Để khắc phục lỗi trên thì chúng ta cần phải xóa các File khóa . Nhưng trước khi bạn làm điều đó, sẽ là một ý tưởng tốt để dừng bất kỳ quá trình nào đang sử dụng các File khóa.

Chúng ta cần sử dụng lệnh lsof để lấy ID tiến trình của quá trình giữ các File khóa . Chúng ta thực hiện nhập từng lệnh như sau :

lsof / var / lib / dpkg / lock 
lsof / var / lib / apt / list / lock 
lsof / var / cache / apt / archives / lock

Có thể các lệnh không trả về bất cứ thứ gì, hoặc chỉ trả về một số. Nếu chúng trả về ít nhất một số, hãy sử dụng (các) số đó và xóa các quy trình như thế này .

Lưu ý : Bạn cần nhớ rằng thay thế PID bằng các số bạn nhận được từ các lệnh trên 

sudo kill -9 PID

Bây giờ bạn có thể xóa các file khóa một cách an toàn bằng các lệnh bên dưới:

sudo rm / var / lib / apt / list / lock 
sudo rm / var / cache / apt / archives / lock 
sudo rm / var / lib / dpkg / lock

Và cuối cùng chúng ta nhập tiếp 1 lệnh :

sudo rm /var/lib/dpkg/lock-frontend
sudo dpkg --configure -a

là hoàn thành việc khắc phục lỗi could not get lock /var/lib/dpkg/lock – open (11: resource temporarily unavailable) nhé . Chúc các bạn thành công !