"यम लॉक" परेशानी से कैसे बचें?


31

मैं अक्सर "एक और ऐप यम लॉक पकड़ रहा हूं, इसके लिए इंतजार कर रहा है ... बाहर निकलने के लिए इंतजार कर रहा है" संदेश एक ऐप इंस्टॉल करने की कोशिश करते समय और मुझे मैन्युअल रूप से यम को मारना होगा। मैं इससे कैसे बच सकता हूं? क्या यम को अनलॉक करने की कोई सरल विधि है?

ऐसा लगता है कि यम का केवल एक उदाहरण चल सकता है। क्या अन्य पैकेज मैनर्स (एप्ट-गेट, पैक्मैन) के साथ भी ऐसा ही है?


मेरे मामले में, मैं वीपीएन के माध्यम से एक सर्वर से जुड़ा था। एक बार जब मैं भागा sudo yum -y update, तो सभी पैकेज ओपन-वीपीएन के साथ अपडेट हो रहे थे। एक बार ओपन-वीपीएन पैकेज अपडेट हो गया, मुझे वीपीएन से डिस्कनेक्ट कर दिया गया। मैं वापस लॉग इन करता हूं, यम अपडेट को फिर से कोशिश करता हूं और यह वही बात कहता है।
अरुण

जवाबों:


24

मुझे लगता है कि यह PackageKit के कारण होता है। आपको PackageKit की जांच करनी होगी और इसे निष्क्रिय करना होगा (मेरा मानना ​​है कि यह CentOS 7 है systemctl, अन्यथा आप उपयोग कर सकते हैं serviceऔर chkconfig) (जैसा कि टिप्पणियों में उल्लेख किया गया है, सेवा नाम packagekitनहीं है packagekitd):

systemctl stop packagekit
systemctl disable packagekit

एक अन्य दृष्टिकोण (सेंटोस / आरएचईएल 6, फेडोरा 19 या पहले पर) /etc/yum/pluginconf.d/refresh-packagekit.confएक पाठ संपादक के साथ खोलना है , और इसमें बदलाव enabled=1करना है enabled=0

या आप इसे पूरी तरह से हटा सकते हैं:

yum remove PackageKit

3
यह packagekit.serviceमेरे सेंटोस 7 पर कहा जाता है
वादिम कोटोव

मेरे मामले में, मैंने बस systemctl stop packagekit को चलाया और फिर yum लॉक को मुक्त कर दिया गया।
टी-हेरॉन

9

समस्या को हल करने के लिए निम्न कार्य करें:

cd /var/run
rm -f yum.pid

आप बाद में अपने यम को भी अपडेट कर सकते हैं

yum -y update

1
यह लक्षणों से लड़ रहा है और वास्तविक कारण को ठीक नहीं कर रहा है।
एक्सल बेकर्ट

4

आप दो सरल चरणों का पालन करके यम को अनलॉक कर सकते हैं,

1) ps aux | grep yumयह देखने के लिए चलाएं कि कौन सी प्रक्रिया यम लॉक कर रही है। 2) kill <process_id>प्रक्रिया को मारने के लिए।

फिर ps aux | grep yumसे देखने के लिए कि क्या प्रक्रिया को मार दिया गया है या नहीं। प्रक्रिया को मारने के बाद यम को अनलॉक कर दिया जाएगा।


3
यह "काम करता है" लेकिन शायद बुरा व्यवहार है
डेव कूसिउ

1
यह चुनिंदा परिस्थितियों में काम करता है। जब मैं अपना yum कमांड शुरू कर सकता हूं, तो मुझे एक ऐसी स्थिति का सामना करना पड़ा है जहां systemd संकुलित प्रक्रिया को पुनरारंभ करता है। और हां, पैकेजेक को न चलाने के लिए इनायत करने के बजाय पीआईडी ​​को मारना शायद बुरा व्यवहार है।
0xSheepdog

1

मेरे मामले में, मैं वीपीएन (ओपन वीपीएन) के माध्यम से एक सर्वर से जुड़ा था। एक बार जब मैं भागा sudo yum -y update, तो सभी पैकेज ओपन-वीपीएन के साथ अपडेट हो रहे थे। एक बार ओपन-वीपीएन पैकेज अपडेट हो गया, मुझे वीपीएन से डिस्कनेक्ट कर दिया गया। मैंने फिर से लॉग इन किया, 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

माना कि सब कुछ अच्छा है, लेकिन मुझे बहुत सी चीजों पर प्लग खींचना पसंद नहीं था!


0

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)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.