Je rencontre souvent le message "Une autre application détient actuellement le verrou yum; en attendant qu'elle se termine ..." lorsque j'essaie d'installer une application et je dois tuer yum manuellement. Comment puis-je éviter cela? Existe-t-il une méthode simple pour déverrouiller miam?
Il semble qu'une seule instance de yum puisse être exécutée. Est-ce la même chose avec les autres gestionnaires de paquets (apt-get, pacman)?
Je pense que cela est causé par PackageKit. Vous devez vérifier PackageKit et le désactiver (je suppose que c'est CentOS 7 avec systemctl
, sinon vous pouvez utiliser service
et chkconfig
) (comme mentionné dans les commentaires, le service le nom est packagekit
pas packagekitd
):
systemctl stop packagekit
systemctl disable packagekit
Une autre approche (sur CentOS/RHEL 6, Fedora 19 ou version antérieure) consiste à ouvrir /etc/yum/pluginconf.d/refresh-packagekit.conf
avec un éditeur de texte et modifiez enabled=1
à enabled=0
.
Ou vous pouvez le supprimer complètement:
yum remove PackageKit
procédez comme suit pour résoudre le problème:
cd /var/run
rm -f yum.pid
vous pouvez également mettre à jour votre miam après
yum -y update
Vous pouvez déverrouiller miam en suivant deux étapes simples,
1) Exécutez ps aux | grep yum
pour voir quel processus bloque miam. 2) kill <process_id>
pour tuer le processus.
Exécutez à nouveau ps aux | grep yum
pour voir si le processus est interrompu ou non. Yum sera déverrouillé après avoir tué le processus.
systemctl disable packagekit
ne suffit pas. packagekit s'exécutera au redémarrage. Utilisez la commande mask
au lieu de la commande disable
.
[root@localhost yum.repos.d]# systemctl mask packagekit
Created symlink from /etc/systemd/system/packagekit.service to /dev/null.
Ensuite, au redémarrage, vous verrez ...
[sri@localhost ~]$ systemctl status packagekit
● packagekit.service
Loaded: masked (/dev/null; bad)
Active: inactive (dead)
Dans mon cas, j'étais connecté à un serveur via VPN (VPN ouvert). Une fois que j'ai couru Sudo yum -y update
, tous les paquets étaient mis à jour, avec open-VPN. Une fois le package open-VPN mis à jour, j'ai été déconnecté du VPN. Je me suis reconnecté, j'ai essayé à nouveau la mise à jour yum et il a été dit qu'un autre processus maintenait le verrou yum.
J'ai vérifié avec ps ax | grep yum
et l'ancien processus était toujours en cours d'exécution. J'ai attendu 5 minutes pour qu'il "se termine", mais le processus a simplement continué. Alors j'ai pensé que je pouvais "tirer sur la gâchette" avec tuer, alors j'ai couru
kill <PID of the yum update process>
Cela n'a pas tué le processus. Je l'ai essayé quelques fois de plus et toujours pas de succès.
Enfin, j'ai dû vraiment débrancher la prise, en exécutant:
kill -9 <PID of the yum update process>
J'ai essayé de nouveau la mise à jour, mais même problème. J'ai ensuite couru:
rm -f /var/run/yum.pid
puis essayé la mise à jour et obtenu cette sortie:
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
Je crois que tout va bien, mais je n'ai pas aimé débrancher tant de choses!