1. 程式人生 > 實用技巧 >安裝Linux軟體時遇到這個問題,如何解決?

安裝Linux軟體時遇到這個問題,如何解決?

提示 Could not get lock /var/lib/dpkg/lock 報錯?

有些小夥伴在使用 apt 包管理器更新或安裝軟體時,可能會遇到過諸如以下的錯誤提示:

E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?

或者

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?
E: Could not get lock /var/lib/apt/lists/lock – open (11: Resource temporarily unavailable)
E: Unable to lock directory /var/lib/apt/lists/

這種時候大可不必驚慌,這些錯誤提示一般都是因為某些程式在系統後臺進行著某些 apt 操作,因此鎖定了 apt 資料庫,所以暫時不能進行 apt 操作。

解決方案

那遇到這種情況,一般我們只需要安靜地等待幾分鐘,或者先去做其他的事情,直到當前的更新、安裝或解除安裝任務完成後,鎖就會自動釋放,然後就可以進行 apt 操作了。

當然了,上面說的是正常情況下的對應,那非正常情況下,比方說你等了好多個幾分鐘鎖都還沒有被釋放,你就要看看是不是該程序由於某些原因而卡住了並且一直佔用著鎖。如果是的話,那你只能幹掉這個程序,然後刪除該鎖定了。

首先,我們先找出是哪個程序佔用了鎖檔案/var/lib/dpkg/lock

$ sudo lsof /var/lib/dpkg/lock

其他鎖檔案對應的命令

$ sudo lsof /var/lib/dpkg/lock-frontend
$ sudo lsof /var/lib/apt/lists/lock

然後得到輸出結果

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEunattende 1548 root 6uW REG 8,2 0 1181062 /var/lib/dpkg/lock

我們可以從結果中看到,該程序的 PID 為 1548

接著,kill 掉這個程序

$sudokill-91548

然後你就可以放心地刪除鎖檔案

$ sudo rm /var/lib/dpkg/lock

或者

$ sudo rm /var/lib/dpkg/lock-frontend
$ sudo rm /var/lib/apt/lists/lock

如果需要,還可以刪除快取目錄下的鎖檔案

$ sudo rm /var/cache/apt/archives/lock

做完上面的步驟後,記得要執行以下命令

$ sudo dpkg--configure -a

這樣問題應該就可以解決了

最後,祝你好運!

點我進入快捷通道