五年前有寫過一篇類似的文章,不過錯誤訊息稍微有些不同,印像中當時執行的 Ubuntu 版本是 16 或是 18。
本篇適用於 Ubuntu 20 以後的版本,舊版文章請參考這邊。
在 Ubuntu 上安裝或更新套件時有時會遇到 APT 套件管理器被鎖定的情況
|
|
建議是找出程序並正常結束它,而不是本文的強制結束,因為其他程序可能正在安裝套件,中斷的話會破壞套件完整性,使系統某個功能損壞,而需要透過其他方法介入修補。
因為這種情況最常發生在桌面板的 GUI 介面下,套件管理器會跳出提示通知更新,但本身會一直卡在 GUI 的確認對話框;如果是使用 SSH 遠端機器的話是沒辦法介入 GUI 介面的,所以這種情況就適用本文的解法。
前面的訊息結尾有顯示是 PID 2734 使用中,但可能不只一個 PID 佔住,可以透過 lsof
查詢所有使用中的 PID
|
|
輸出如下,可以看到有兩個處理程序佔用
|
|
使用 sudo kill -9 <PID>
強制結束
|
|
再次執行套件管理程式,應該就可以正常執行了。
如果不行的話,就重複上面的步驟 (使用 lsof
查找佔用 lock file 的處理程序),直到可以執行為止。
Reference: 【 Solutions 】解決更新套件或安裝套件遇到 - 無法將 /var/lib/dpkg/lock 鎖定