“Yum Lock” sıkıntısını nasıl önleyebilirim?


31

Bir uygulamayı kurmaya çalışırken sık sık "Başka bir uygulama şu anda yum kilidini tutuyor; çıkmasını bekliyor ..." mesajı ile karşılaşıyorum ve yum'u elle öldürmem gerekiyor. Bundan nasıl kaçınabilirim? Yum kilidini açmak için herhangi bir basit yöntem var mı?

Yum'un yalnızca bir örneği çalışıyor olabilir. Diğer paket yöneticileri ile aynı mı (apt-get, pacman)?


Benim durumumda bir sunucuya VPN ile bağlandım. Koştuğumda sudo yum -y update, tüm paketler açık VPN ile birlikte güncelleniyordu. Açık-VPN paketi güncellendiğinde, VPN ile bağlantım kesildi. Tekrar giriş yaptım, yum güncellemesini tekrar dene ve aynı şeyi söylüyor.
arun

Yanıtlar:


24

Ben PackageKit neden olduğunu düşünüyorum. PackageKit'i kontrol etmeniz ve devre dışı bırakmanız gerekir (Sanırım CentOS 7'dir systemctl, aksi takdirde kullanabilirsiniz serviceve chkconfig) (yorumlarda belirtildiği gibi, hizmet adı packagekitdeğildir packagekitd):

systemctl stop packagekit
systemctl disable packagekit

Diğer bir yaklaşım (CentOS / RHEL 6 günü, Fedora 19 veya öncesi) açmaktır /etc/yum/pluginconf.d/refresh-packagekit.confbir metin düzenleyici ve değişimle enabled=1için enabled=0.

Veya tamamen kaldırabilirsiniz:

yum remove PackageKit

3
packagekit.serviceCentos'umun adı 7
Vadim Kotov

Benim durumumda, sadece packctekit stop systemctl koştu ve sonra yum kilidi serbest bırakıldı.
T-Heron

9

sorunu çözmek için aşağıdakileri yapın:

cd /var/run
rm -f yum.pid

yum sonra da güncelleyebilirsiniz

yum -y update

1
Bu semptomlarla mücadele etmek ve asıl sebebi çözmemek.
Axel Beckert

4

İki basit adımı izleyerek yum kilidini açabilirsiniz,

1) ps aux | grep yumHangi sürecin yum kilitlendiğini görmek için çalıştırın . 2) kill <process_id>süreci öldürmek.

ps aux | grep yumSürecin öldürülüp öldürülmediğini tekrar görmek için koşun . Süreci öldürdükten sonra Yum kilidi açılacak.


3
Bu "çalışır" ama muhtemelen kötü bir uygulama
Dave Cousineau

1
Bu, belirli koşullarda çalışır. Kendi yum komutumu başlatmadan önce systemd'in packagekit işlemini yeniden başlattığı bir durumla karşılaştım. Ve evet, aynı zamanda incelikle packagekitin çalışmamasını söylemek yerine PID'yi öldürmek muhtemelen kötü bir uygulamadır.
0xSheepdog

1

Benim durumumda bir sunucuya VPN (açık VPN) ile bağlandım. Koştuğumda sudo yum -y update, tüm paketler açık VPN ile birlikte güncelleniyordu. Açık-VPN paketi güncellendiğinde, VPN ile bağlantım kesildi. Tekrar giriş yaptım, yum güncellemesini tekrar denedim ve başka bir işlem yum kilidini tutuyor dedi.

Ben kontrol ettim ps ax | grep yumve eski süreç hala çalışıyordu. "Bitmesi" için 5 dakika bekledim, ancak işlem devam etti. Sonra öldürmeyle "tetiği çekebileceğimi" düşündüm, o yüzden koştum

kill <PID of the yum update process>

Bu süreci öldürmedi. Bunu birkaç kez daha denedim, ama hala başarılı olamadım.

Sonunda, çalıştırarak fişi gerçekten çekmek zorunda kaldım:

kill -9 <PID of the yum update process>

Yine yum güncellemesi denedim ama aynı konu. Sonra koştum:

rm -f /var/run/yum.pid

ve daha sonra güncellemeyi denedi ve şu çıktıyı aldı:

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

Her şeyin yolunda olduğuna inan, ama fişi çekmeyi pek sevmedim!


0

systemctl disable packagekit yeterli değil . packagekit yeniden başlatıldığında çalıştırılacak. Kullanım maskyerine komutunu disablekomutu.

[root@localhost yum.repos.d]# systemctl mask packagekit
Created symlink from /etc/systemd/system/packagekit.service to /dev/null.

Sonra yeniden başladığınızda göreceksiniz ...

[sri@localhost ~]$ systemctl status packagekit
● packagekit.service
   Loaded: masked (/dev/null; bad)
   Active: inactive (dead)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.