問題描述
在 Ubuntu/Debian 系統中運行 sudo apt-get install
或 sudo apt update
時,遇到以下錯誤:
E: 無法獲得鎖 /var/lib/dpkg/lock - open (11: 資源暫時不可用)
E: 無法鎖定管理目錄(/var/lib/dpkg/),是否有其他進程正占用它?
這表明系統中有其他進程(如 apt
、dpkg
或自動更新)正在運行,導致資源被占用,無法執行新的 apt
操作。
錯誤原因
- 另一個
apt
或dpkg
進程正在運行(如手動安裝、更新或卸載軟件)。 - 系統自動更新(
unattended-upgrades
)占用了鎖。 - 之前
apt
命令異常終止(如Ctrl+C
強制退出),導致鎖未被釋放。 - 多個終端同時運行
apt
,造成沖突。
解決方法
1. 等待當前操作完成
如果系統正在自動更新或手動安裝軟件,稍等幾分鐘再試。
2. 檢查并終止占用進程
- 查找占用進程:
ps aux | grep -i apt ps aux | grep -i dpkg
- 強制終止相關進程(替換
<PID>
為實際進程ID):sudo kill -9 <PID>
- 如果發現
unattended-upgrades
(自動更新),可臨時關閉:sudo systemctl stop unattended-upgrades
3. 刪除鎖文件(若無進程占用)
sudo rm /var/lib/dpkg/lock
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo dpkg --configure -a # 修復可能的損壞
4. 重新嘗試安裝
sudo apt-get update
sudo apt-get install cmake # 或其他軟件
預防措施
- 避免同時運行多個
apt
操作。 - 調整自動更新設置(如需禁用):
修改為:sudo nano /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "0"; APT::Periodic::Unattended-Upgrade "0";
總結
該錯誤通常由 apt
進程沖突或鎖未釋放導致,通過終止占用進程、刪除鎖文件或等待操作完成即可解決。如果問題仍然存在,可檢查系統日志(/var/log/apt/
)進一步排查。
適用系統:Ubuntu、Debian 等基于 apt
的 Linux 發行版。
希望這篇指南能幫助你順利解決問題!🚀