Answers:
我认为这是由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
packagekit.service
我的Centos 7
您可以按照以下两个简单步骤解锁yum,
1)运行ps aux | grep yum
以查看哪个进程正在锁定yum。2)kill <process_id>
杀死进程。
再次运行ps aux | grep yum
以查看该进程是否被终止。在终止进程后,Yum将被解锁。
就我而言,我是通过VPN(开放VPN)连接到服务器的。一旦运行sudo yum -y update
,所有软件包以及开放VPN都将得到更新。开放VPN软件包更新后,我与VPN断开了连接。我重新登录,再次尝试了yum更新,它说另一个进程正在持有yum锁。
我检查了ps ax | grep yum
一下,旧进程仍在运行。我等待了5分钟,以使其“完成”,但是该过程一直在运行。然后我以为我可以“杀死”扳机,所以我跑了
kill <PID of the yum update process>
那并没有杀死这个过程。尝试了几次,仍然没有成功。
最后,我必须通过运行以下命令真正拔下插头:
kill -9 <PID of the yum update process>
尝试再次更新百胜,但同样的问题。然后我跑了:
rm -f /var/run/yum.pid
然后尝试更新并得到以下输出:
Loaded plugins: fastestmirror
Setting up Update Process
Loading mirror speeds from cached hostfile
* base: mirror.sigmanet.com
* epel: mirror.sjc02.svwh.net
* extras: mirrors.vpsie.com
* updates: mirror.pac-12.org
No Packages marked for Update
相信一切都很好,但是我不喜欢把这么多东西塞住!
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)
sudo yum -y update
,所有软件包以及开放VPN都将得到更新。开放VPN软件包更新后,我与VPN断开了连接。我重新登录,再次尝试yum更新,它说的是同样的话。