यहाँ कुछ अच्छे उत्तर हैं, लेकिन केवल dpkg लॉक उपयोगकर्ता को खोजने का एक गैर-lsof तरीका जोड़ना चाहते हैं
चरण 1: पता लगाएँ कि कौन dpkg लॉक कर रहा है:
विकल्प # 1: lsof का उपयोग करना (हमेशा मशीन पर स्थापित नहीं)
lsof /var/lib/dpkg/lock
विकल्प # 2: बैश का उपयोग करना
for pid in $(ls /proc | egrep [0-9]+); do sudo ls -l /proc/$pid/fd 2>/dev/null | grep /var/lib/dpkg/lock && echo $pid; done
चरण 2: यह तय करें कि आप वर्तमान dpkg उपयोगकर्ता के साथ क्या करना चाहते हैं
यदि ऐसी कोई प्रक्रिया नहीं है, तो निर्णय लेने के लिए कुछ भी नहीं है, बस अगले चरण पर जाएं।
अन्यथा, आपको यह तय करना होगा कि क्या आप प्रक्रिया को मारना चाहते हैं या इसे इनायत से खत्म करना चाहते हैं। यदि आप इसे मारने का फैसला करते हैं, तो बस उपयोग करें kill <pid>
। यदि प्रक्रिया अभी भी नहीं मरती है, तो आप इसका उपयोग करके इसे मारने पर विचार कर सकते हैं kill -9 <pid>
, लेकिन यह कुछ विसंगतियां पैदा कर सकता है और मैं इसके खिलाफ सलाह देता हूं जब तक कि आप यह नहीं जानते कि आप क्या कर रहे हैं।
चरण 3: लॉक फ़ाइल को निकालें
sudo rm /var/lib/dpkg/lock
चरण 4: dpkg आंतरिक स्थिति को ठीक करें
sudo dpkg --configure -a