"E: उप-प्रक्रिया / usr / bin / dpkg ने एक त्रुटि कोड लौटाया (1)" इसका क्या मतलब है?


31

मैंने यह संदेश कई बार देखा है जब भी किसी को सॉफ़्टवेयर के कुछ टुकड़े को स्थापित करने, अपग्रेड करने या निकालने में कोई समस्या होती है, लेकिन मुझे आश्चर्य है कि इसका क्या मतलब है , और इससे भी महत्वपूर्ण बात यह है कि इसे हल करना संभव है?

(Reading database ... 81657 files and directories currently installed.)
 Removing mongodb-10gen ...
 arg: remove
 invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.
 dpkg: error processing mongodb-10gen (--remove):
  subprocess installed pre-removal script returned error exit status 100
 invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.
 dpkg: error while cleaning up:
  subprocess installed post-installation script returned error exit status 100
 Errors were encountered while processing:
  mongodb-10gen
 E: Sub-process /usr/bin/dpkg returned an error code (1)

(उपरोक्त केवल एक उदाहरण है, मेरी वास्तविक समस्या नहीं है)


2
यदि आपने कोशिश की apt-get install (something)और आपको यह त्रुटि संदेश मिला जैसे मैंने किया, तो मेरे लिए समाधान था apt-get upgrade (something)
पीजे ब्रूनेट

जवाबों:


30

वह संदेश सामान्य है। इसका मतलब सिर्फ इतना है कि किसी कारण से dpkgबुलाया गया apt/ apt-getअसफल रहा। यह क्यों, कैसे, या संकेत नहीं देता कि इसे कैसे हल किया जाए। नैदानिक ​​संदेश के रूप में, यह उपयोगी नहीं है।

आपको वास्तविक त्रुटि खोजने के लिए संदेश (कभी-कभी उनमें से काफी संख्या में) से पहले लाइनों को पढ़ने की आवश्यकता होती है जो आपको स्थापना को पूरा करने से रोकती है।

हाँ, लेकिन मैं इसे कैसे हल करूँ?

इसे हल करने का कोई एक तरीका नहीं है। बहुत सारे कारण हैं कि ऐसा क्यों हो सकता है कि उन सभी को एक ही पोस्ट में सूचीबद्ध करने का प्रयास करना व्यर्थ है। प्रत्येक और हर परिस्थिति उस पैकेज / वातावरण के लिए लगभग अद्वितीय है।

लेकिन, वहाँ मोचन है। तथ्य यह है कि आप इस संदेश को देखते हैं इसका मतलब है कि शायद संदेश से पहले लाइनों में अधिक प्रासंगिक जानकारी है। उदाहरण के लिए मैं एक उदाहरण का उपयोग करूंगा:

(Reading database ... 81657 files and directories currently installed.)
 Removing mongodb-10gen ...
 arg: remove
 invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.
 dpkg: error processing mongodb-10gen (--remove):
  subprocess installed pre-removal script returned error exit status 100
 invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.
 dpkg: error while cleaning up:
  subprocess installed post-installation script returned error exit status 100
 Errors were encountered while processing:
  mongodb-10gen
 E: Sub-process /usr/bin/dpkg returned an error code (1)

अब, समस्या का पता लगाने के लिए, आपको पीछे की ओर पढ़ने की आवश्यकता है:

  • E: Sub-process /usr/bin/dpkg returned an error code (1)मुझे कुछ भी उपयोगी नहीं बताता। इसलिए आगे बढ़ रहे हैं।
  • Errors were encountered while processing: mongodb-10genसिर्फ मुझे बताता है कि किस पैकेज में समस्याएं हैं। उपयोगी है लेकिन पर्याप्त नहीं है।
  • subprocess installed post-installation script returned error exit status 100: यह मुझे बताता है कि जो स्क्रिप्ट विफल रही postinst, वह थी , जो पोस्ट-इंस्टॉलेशन में निष्पादित हुई थी। यह कुछ स्थितियों में काम आएगा, लेकिन इस एक में नहीं।
  • dpkg: error while cleaning up: यहां कुछ भी उपयोगी नहीं है।
  • invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.बिंगो! यह हमें बताता है कि invoke-rc.d, एक बाइनरी जो अधिकांश डेबियन जैसी प्रणाली में init स्क्रिप्ट को नियंत्रित करती है, विफल रही। यह विफल हो गया क्योंकि यह /etc/init.d/mongodbस्क्रिप्ट नहीं ढूंढ सका । ये गलत है। हमें इसे बनाने या कहीं और से कॉपी करने की आवश्यकता है ताकि यह फिर से काम करना शुरू कर दे। पैकेज को फिर से स्थापित करना भी आम तौर पर file not foundत्रुटियों का एक विकल्प है ।

    इस मामले में, बग की रिपोर्ट करना आवश्यक नहीं है क्योंकि संभावित है कि हम स्क्रिप्ट को हटाने वाले थे, लेकिन यदि आप पूरी तरह से सुनिश्चित हैं कि आपने फ़ाइल को नहीं छुआ ( debsums -slaइसकी पुष्टि होनी चाहिए) तो बग की रिपोर्ट करें।

तो, मदद पाने के लिए आपको वास्तव में क्या चाहिए? आदर्श रूप से, समस्या का पूरा आउटपुट। यह sudo dpkg -Cऔर "के पैकेज 1 पैकेज 2 ..." के आउटपुट को शामिल करने के लिए भी उपयोगी है sudo apt-get check, apt-cache policy package1 package2...जिसमें सभी पैकेज समस्याओं के साथ शामिल हैं।


एक नैदानिक ​​संदेश के रूप में यह मददगार है यदि आप पूरी त्रुटि पढ़ते हैं (प्रसंस्करण के दौरान त्रुटियां सामने आईं: mongodb-10gen) यही कारण है कि इसे ई के रूप में सूचीबद्ध किया गया है और त्रुटि नहीं है
mchid

1
@ एमकिड लेकिन क्या त्रुटि हुई? यह आपको दृष्टिहीन सुराग नहीं देता है।
ब्रायम

@ एमचिड हां, मैं कैसे पता लगा सकता हूं कि अगर मैं सिर्फ पढ़ता हूं Errors were encountered while processing: mongodb-10gen? जैसा कि समस्या को हल करने के लिए, वह रेखा बेकार है
ब्रायम

मेरा बुरा मुझे लगा कि आप सिर्फ समस्या को ठीक करने के लिए देख रहे थे ("क्या इसे हल करना संभव है") मुझे लगता है कि मैंने इसे संदर्भ से बाहर ले लिया है।
18

BTW, समस्या को ठीक करने के लिए चलाएँ sudo touch /etc/init.d/mongodbऔर फिर चलाएँ sudo apt-get purge mongodb-10gen। मैंने इसका परीक्षण किया और जब तक फ़ाइल मौजूद है (/etc/init.d/mongodb) dpkg तब भी आगे बढ़ेगा जब फ़ाइल खाली है जो स्पर्श करती है (एक खाली फ़ाइल बनाता है)।
mchid
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.