執行 yum install 時遇到 Existing lock /var/run/yum.pid: another copy is running as pid XXXX 錯誤,通常是系統自動更新服務正在佔用 yum 鎖。本文提供三步標準解決流程,並說明原理與替代方案。
# yum -y install vixie-cron
Loaded plugins: fastestmirror, refresh-packagekit, security
Existing lock /var/run/yum.pid: another copy is running as pid 25960.
Another app is currently holding the yum lock; waiting for it to exit...
# 先查看進程詳情
ps aux | grep yum
# 嘗試優雅終止 (SIGTERM)
kill 25960
# 若無效,強制終止 (SIGKILL)
kill -9 25960
注意:若進程狀態為 Z (殭屍進程),kill 無效需進行步驟 2。
rm -f /var/run/yum.pid
此為最直接有效的方法,移除鎖定檔後 yum 即可正常運作。
# CentOS 6 / RHEL 6
/sbin/service yum-updatesd restart
# CentOS 7 / RHEL 7 / Fedora (systemd)
systemctl restart yum-updatesd.service
# 或
systemctl restart dnf-makecache.timer
# 1. 發現鎖定
yum -y install gcc* ...
# 2. 查看進程
ps -ef | grep update
# 發現 python /usr/sbin/yum-updatesd
# 3. kill 進程 (可能無效)
kill -9 PID
# 4. 強制刪除鎖定檔
rm -f /var/run/yum.pid
# 5. 重啟更新服務
/sbin/service yum-updatesd restart
# 6. 再次執行 yum 即正常
yum -y install gcc* ...
systemctl disable yum-updatesd (手動定期更新)yum --nolock 參數可暫時忽略鎖定 (不建議常態使用)