執行 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。# 查看進程詳情
ps -fp 4733
# 或
lsof /var/run/yum.pid
# 若進程確實存在且為自動更新,可等待完成或終止
kill 4733
# 若不響應
kill -9 4733
rm -f /var/run/yum.pid
# 同時檢查其他可能的鎖定檔
rm -f /var/lib/rpm/__db.* # RPM 資料庫鎖定檔 (謹慎操作)
# 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
yum clean all
yum makecache
yum list updates
若上述步驟後 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 為 yum 繼任者,鎖定機制改進(/var/lib/dnf/.lock),較少發生殘留鎖定問題:
# 同樣解決邏輯
rm -f /var/lib/dnf/.lock
dnf clean all
dnf makecache
yum update,或使用 dnf-automatic 僅下載不安裝(apply_updates = no)。yum clean all 納入日誌輪轉腳本。rpm -qa kernel 定期驗證查詢速度。yum "Loaded plugins" 鎖定錯誤核心解決:終止佔用進程 → 刪除 /var/run/yum.pid → 重啟/停用自動更新服務 → 驗證。若伴隨 RPM 資料庫錯誤,執行 rpm --rebuilddb。現代系統建議遷移至 dnf 並停用自動更新服務,由受控維護窗口統一管理套件更新。
Linux 升級 MySQL 後報錯 conflicts with file 解決方案:移除舊 libs 衝突包
Linux Bash Shellshock (破殼) 漏洞 (CVE-2014-6271/7169) 檢測與修補完整指南
Linux xlsclients 指令詳解:列出 X 顯示器上運行的客戶端應用程式
Linux 無法啟動 Lantern 缺少 libappindicator3.so.1 解決方法
Linux 禁止內核自動升級:yum 配置排除與命令行參數兩大方案
VMware 虛擬機修改 Linux MAC 地址三大法:.vmx 配置最推薦