当尝试安装应用程序时,我经常遇到“另一个应用程序当前正在持有 yum 锁;正在等待它退出...”消息,并且我必须手动终止 yum。我怎样才能避免这种情况?有什么简单的方法可以解锁 yum 吗?
看起来只有一个 yum 实例可以运行。与其他包管理器(apt-get、pacman)一样吗?
答案1
我认为这是由PackageKit引起的。你必须检查 PackageKit 并禁用它(我假设它是带有 的 CentOS 7 systemctl
,否则你可以使用service
和chkconfig
)(如评论中所述,服务名称不是packagekit
)packagekitd
:
systemctl stop packagekit
systemctl disable packagekit
另一种方法(在 CentOS/RHEL 6、Fedora 19 或更早版本上)是/etc/yum/pluginconf.d/refresh-packagekit.conf
使用文本编辑器打开,然后更改enabled=1
为enabled=0
.
或者你可以完全删除它:
yum remove PackageKit
答案2
请执行以下操作来解决该问题:
cd /var/run
rm -f yum.pid
你也可以稍后更新你的 yum
yum -y update
答案3
您可以通过以下两个简单的步骤来解锁 yum,
1) 运行ps aux | grep yum
查看哪个进程正在锁定 yum。 2)kill <process_id>
杀死进程。
再次运行ps aux | grep yum
看看进程是否被杀死。杀死进程后yum就会解锁。
答案4
systemctl disable packagekit
是不足够的。 packagekit 将在重新启动时运行。使用mask
命令而不是命令disable
。
[root@localhost yum.repos.d]# systemctl mask packagekit
Created symlink from /etc/systemd/system/packagekit.service to /dev/null.
然后重启后你会看到...
[sri@localhost ~]$ systemctl status packagekit
● packagekit.service
Loaded: masked (/dev/null; bad)
Active: inactive (dead)