在 Linux 中使用 yum(或 dnf)时,经常会遇到 “Another app is currently holding the yum lock” 这样的提示,说明有另一个进程正在占用 yum 的锁文件。
Another app is currently holding the yum lock; waiting for it to exit...
The other application is: yum
Memory: xxx k
Started: ...
如果是系统自动更新(如 yum-cron、packagekit),建议先等待 1–2 分钟,让它自己完成。
ps aux | grep yum
或
lsof /var/run/yum.pid
如果有异常进程,可以确认是否安全后结束它。
pkill -9 yum
或根据 PID 杀:
kill -9 <PID>
如果确认没有其他 yum 在运行:
rm -f /var/run/yum.pid
或(旧版本):
rm -f /var/lock/yum/*
然后再执行:
yum clean all
yum makecache
CentOS / RHEL 常因 PackageKit 自动锁住:
systemctl stop packagekit
systemctl disable packagekit
systemctl disable yum-cron
dnf 时同样注意锁文件:rm -f /var/run/dnf.pid
yum complete-transaction
如果你愿意,可以把完整报错信息或 **系统版本(CentOS 7 / 8 / Rocky / Alma)**发给我,我可以给你更精确的命令。