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 yum 提示 "Loaded plugins" 錯誤與鎖定衝突解決方案

編輯:關於 Linux

執行 yum 指令時出現 Existing lock /var/run/yum.pid: another copy is running as pid XXXX,表示有另一個 yum 進程正在運行(可能是自動更新服務 yum-updatesd、dnf-automatic 或殘留進程)。重啟無效時,需手動清除 PID 檔案並重啟相關服務。本文提供標準排查與解決流程。

錯誤訊息分析

Loaded plugins: fastestmirror, security
Existing lock /var/run/yum.pid: another copy is running as pid 4733.
Another app is currently holding the yum lock; waiting for it to exit...
The other application is: yum-updatesd-he
Memory: 22 M RSS (249 MB VSZ)
Started: Fri Jul 6 12:18:29 2012 - 53:47 ago
State: Sleeping, pid: 4733
  • yum.pid:記錄正在運行的 yum 進程 ID,防止並發操作損壞 RPM 資料庫。
  • yum-updatesd:CentOS 5/6 時代的自動更新守護程式,會定期檢查更新並鎖定 yum。
  • 重啟後仍出現:PID 檔案未清除、服務設定為開機自啟並立即鎖定、或檔案系統錯誤導致 PID 檔案殘留。

標準解決步驟

1. 確認並終止佔用進程

# 查看進程詳情
ps -fp 4733
# 或
lsof /var/run/yum.pid

# 若進程確實存在且為自動更新,可等待完成或終止
kill 4733
# 若不響應
kill -9 4733

2. 移除殘留 PID 檔案

rm -f /var/run/yum.pid
# 同時檢查其他可能的鎖定檔
rm -f /var/lib/rpm/__db.*  # RPM 資料庫鎖定檔 (謹慎操作)

3. 重啟/停用自動更新服務

# CentOS 5/6 (yum-updatesd)
service yum-updatesd restart
# 或永久停用
chkconfig yum-updatesd off
service yum-updatesd stop

# CentOS 7+ (dnf-automatic / yum-cron)
systemctl stop dnf-automatic.timer
systemctl disable dnf-automatic.timer
systemctl stop yum-cron
systemctl disable yum-cron

4. 驗證 yum 可用

yum clean all
yum makecache
yum list updates

進階排查:RPM 資料庫損壞

若上述步驟後 yum 仍報 rpmdb: BDB0113 Thread/process XXXX failed: BDB1507 Thread died in Berkeley DB library:

# 重建 RPM 資料庫
rpm --rebuilddb
# 或
rm -f /var/lib/rpm/__db.*
rpm --rebuilddb
yum clean all

現代替代:dnf (CentOS 8/9、RHEL 8/9、Fedora)

dnf 為 yum 繼任者,鎖定機制改進(/var/lib/dnf/.lock),較少發生殘留鎖定問題:

# 同樣解決邏輯
rm -f /var/lib/dnf/.lock
dnf clean all
dnf makecache

預防措施

  1. 避免並發 yum 操作:Ansible/Chef/Puppet 部署時序列化套件安裝任務。
  2. 生產環境停用自動更新:改用維護窗口手動 yum update,或使用 dnf-automatic 僅下載不安裝(apply_updates = no)。
  3. 定期清理快取:yum clean all 納入日誌輪轉腳本。
  4. 監控 RPM 資料庫健康:rpm -qa kernel 定期驗證查詢速度。

總結

yum "Loaded plugins" 鎖定錯誤核心解決:終止佔用進程 → 刪除 /var/run/yum.pid → 重啟/停用自動更新服務 → 驗證。若伴隨 RPM 資料庫錯誤,執行 rpm --rebuilddb。現代系統建議遷移至 dnf 並停用自動更新服務,由受控維護窗口統一管理套件更新。

Copyright © Windows教程網 All Rights Reserved