Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Linux 更新套件報錯「無法獲得鎖 /var/lib/dpkg/lock」的一鍵解決

編輯:關於 Linux

執行 apt update 或 apt install 時出現:

E: 無法獲得鎖 /var/lib/dpkg/lock – open (11: 資源暫時不可用)
E: 無法鎖定管理目錄 (/var/lib/dpkg/),是否有其他進程正占用它?

原因通常是前一次 apt/dpkg 進程異常中斷(Ctrl+C、斷電、SSH 斷線),留下殘留鎖檔。刪除兩個鎖檔即可恢復。

dpkg 鎖定錯誤畫面

一鍵修復

sudo rm /var/lib/dpkg/lock
sudo rm /var/cache/apt/archives/lock

進階:確認無殘留進程再刪除(更安全)

# 1. 檢查是否有 apt/dpkg 進程仍在運行
ps aux | grep -E '(apt|dpkg)' | grep -v grep

# 2. 若有,嘗試正常結束(等待或 kill -15),避免資料庫損毀
# 3. 確認無進程後,再刪除鎖檔
sudo rm -f /var/lib/dpkg/lock /var/cache/apt/archives/lock

# 4. 修復可能的 dpkg 狀態
sudo dpkg --configure -a
sudo apt --fix-broken install

常見誤區

  • 直接 kill -9 正在寫入資料庫的 dpkg → 導致資料庫損毀,引發 Fatal error, run database recovery(參考本系列 43102 篇)。
  • 刪除鎖檔後不執行 dpkg --configure -a → 留下半安裝狀態套件,下次操作再報錯。

預防建議

  1. 使用 apt 時避免強制中斷;需中斷請 Ctrl+Z 暫停,再 fg 恢復或 kill -15 優雅結束。
  2. 自動化腳本(如 Ansible、CI/CD)執行 apt 前,加入鎖檢查與等待邏輯:
    while fuser /var/lib/dpkg/lock >/dev/null 2>&1; do sleep 5; done

遇到鎖錯誤,先查進程、再刪鎖、最後修復狀態,三步驟讓套件管理器乾淨上路。

Copyright © Windows教程網 All Rights Reserved