web-dev-qa-db-fra.com

Comment éviter les tracas "yum lock"?

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)?

36
PHPst

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
29
taliezin

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
10
Lucky

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.

4
MayurKubavat

systemctl disable packagekitne 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)
1
shrewmouse

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!

1
arun