如題,在使用 APT 安裝套件時,如果當下有其它的 APT process 執行中,便會出現下列錯誤訊息:
Shell
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?
1
2
|
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?
|
首先,先查看是不是有其它 APT process 在執行:
Shell
$ ps aux | grep apt
Calos 18343 0.0 0.0 12948 904 pts/9 S+ 10:32 0:00 grep --color=auto apt
1
2
|
$ ps aux | grep apt
Calos 18343 0.0 0.0 12948 904 pts/9 S+ 10:32 0:00 grep --color=auto apt
|
指令列中出現的是 grep
的參數,並不是 APT process,如果有出現其它的 process,建議先嘗試以正常方式去結束掉它,不要輕易的執接 kill process,因為有可能會導致系統損毀。
這邊的例子是沒有出現,代表可能前一次在執行 APT 時因為某些因素導致意外結束,我們可以透過 find
指令搜尋 /var/cache/apt/archives/lock
、/var/lib/apt
與 /var/lib/dpkg
這三個目錄下是否存在 lock file:
Shell
$ sudo find /var/cache/apt /var/lib/apt /var/lib/dpkg -name lock
/var/cache/apt/archives/lock
/var/lib/apt/lists/lock
/var/lib/dpkg/lock
1
2
3
4
|
$ sudo find /var/cache/apt /var/lib/apt /var/lib/dpkg -name lock
/var/cache/apt/archives/lock
/var/lib/apt/lists/lock
/var/lib/dpkg/lock
|
三個目錄分別出現一個 lock file,但是卻沒有 APT process 在執行,前一次執行 APT 沒有正常結束時就會有這個情況發生。至於為什麼錯誤訊息顯示的錯誤路徑是 /var/lib/dpkg
?簡單來說,APT 是一個套件管理工具,而實際上將套件安裝到系統的任務是由 dpkg 負責,而出現錯誤時我們通常都是看到 dpkg 跳警告而不是 APT。
處理這種情況,先刪除 lock file 後,再重新執行 APT,大多時候通常只要這樣就可以了。但如果運氣非常好,就會有個大坑 出現在你眼前。
Shell
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/apt/lists/lock
sudo rm /var/lib/dpkg/lock
1
2
3
|
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/apt/lists/lock
sudo rm /var/lib/dpkg/lock
|
References:
[Ubuntu] Unable to lock the administration directory (/var/lib/dpkg/) is another process using it? was last modified: 2018-06-19 by Calos