最近,我遇到了 “Could not get lock /var/lib/dpkg/lock”的錯誤,我既不能安裝任何軟體包,也不能更新系統。此錯誤也與“Could not get lock /var/lib/apt/lists/lock”錯誤密切相關。以下是 Ubuntu 20.04 上的一些樣本輸出。
Reading package lists... Done
E: Could not get lock /var/lib/apt/lists/lock. It is held by process 3620 (apt)
N: Be aware that removing the lock file is not a solution and may break your system.
E: Unable to lock directory /var/lib/apt/lists/
這可能會非常令人沮喪,經常會讓你陷入困境,無法更新、更新或安裝任何軟體包。
是什麼導緻了這個錯誤
正如錯誤所提示的那樣,另一個程序正在使用 /var/lib/dpkg/lock 或 /var/lib/dpkg/lock 檔案。當您有 2 個或多個終端運作系統更新或更新時,就會發生這種情況。當您過早地取消或以其他方式更新 / 更新時,也可能發生這種情況。
如果遇到這種錯誤,完全沒有必要驚慌,讓我們探讨一些解決方案。
(1) 關閉所有正在使用 APT 管理器的程序
列出使用 apt 包管理器的程序
$ ps aux | grep - i apt
結束正在使用 apt 包管理器的程序
$ sudo kill -9 3619
$ sudo kill -9 3620
再次使用 ps 指令,驗證程序是否結束,如果它們都已清除,就可以繼續更新系統。
(2) 删除鎖定檔案
在某些情況下,根本原因可能是鎖檔案。鎖檔案阻止兩個或多個程序通路相同的資料。當您運作 apt 或 apt-get 指令時,通常會建立一個鎖檔案。但是,如果最新的 apt 指令沒有成功執行(即突然終止),鎖檔案将繼續存在并阻止任何後續的 apt 或 apt-get 執行個體。
解決 “Could not get lock /var/lib/apt/lists/lock”錯誤
$ sudo rm /var/lib/apt/lists/lock
解決 “Could not get lock /var/lib/dpkg/lock”錯誤
$ sudo rm /var/lib/dpkg/lock
其他時候,您可能會遇到 “/var/lib/dpkg/lock-frontend error”的錯誤。這意味着目前正在運作使用 APT / DPKG 的圖形應用程式,這可能是使用 Gdebi 或 Synaptic 包管理器造成的。
即時的補救措施是退出或關閉程式,并再次嘗試。如果沒有效果,可是嘗試删除 /var/lib/dpkg/lock-frontend 檔案。
$ sudo rm /var/lib/dpkg/lock-frontend
删除 lock-frontend 檔案可能會再次導緻“Could not get lock /var/lib/dpkg/lock”錯誤,是以,您将不得不繼續删除相關鎖定檔案。
$ sudo rm /var/lib/dpkg/lock
如果您碰巧會出現有關 apt-cache lock 的錯誤,例如 /var/cache/apt/archives/lock,請删除相關鎖定檔案。
$ sudo rm /var/cache/apt/archives/lock
$ sudo rm /var/lib/dpkg/lock
我的開源項目
酷瓜雲課堂 - 開源線上教育解決方案
- course-tencent-cloud(酷瓜雲課堂 - gitee 倉庫)
- course-tencent-cloud(酷瓜雲課堂 - github 倉庫)