回答:
PackageKitが原因だと思います。PackageKitを確認して無効にする必要があります(CentOS 7でありsystemctl
、そうでない場合はservice
and を使用できます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上
次の2つの簡単な手順でyumのロックを解除できます。
1)実行ps aux | grep yum
して、yumをロックしているプロセスを確認します。2)kill <process_id>
プロセスを強制終了します。
再度実行ps aux | grep yum
して、プロセスが強制終了されたかどうかを確認します。Yumはプロセスを強制終了するとロック解除されます。
私の場合、VPN(オープンVPN)を介してサーバーに接続していました。実行するとsudo yum -y update
、すべてのパッケージがopen-VPNとともに更新されていました。open-VPNパッケージが更新されると、VPNから切断されました。再度ログインし、yumの更新を再試行しましたが、別のプロセスがyumロックを保持していると表示されました。
で確認しましたがps ax | grep yum
、古いプロセスはまだ実行されていました。「終了」するまで5分間待機しましたが、プロセスは実行され続けました。それから私は殺すと「引き金を引く」ことができると思ったので、私は走った
kill <PID of the yum update process>
それはプロセスを殺しませんでした。それをさらに数回試してみましたが、まだ成功していません。
最後に、次のコマンドを実行して、実際にプラグを抜く必要がありました。
kill -9 <PID of the yum update process>
yumの更新を再試行しましたが、同じ問題がありました。その後、私は走った:
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
十分ではありません。パッケージキットは再起動時に実行されます。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
、すべてのパッケージがopen-VPNとともに更新されていました。open-VPNパッケージが更新されると、VPNから切断されました。再度ログインし、yumの更新を再試行しますが、同じことが表示されます。