ऐसे पैकेज को कैसे निकालें / स्थापित करें जो पूरी तरह से स्थापित नहीं है?


62

मैं दूसरे दिन bsnes स्थापित करने के लिए चला गया और जो भी कारण स्थापना विफल रही। अब, मैं अपडेट नहीं कर सकता, नए पैकेज स्थापित कर सकता हूं, या मूल रूप से कोई भी कमांड प्राप्त कर सकता हूं क्योंकि वे सभी इस टूटे हुए पैकेज को संसाधित करने और विफल होने की कोशिश करते हैं। एक नया पैकेज स्थापित करने का प्रयास भी बस उसी भाग्य को प्रताड़ित करता है। मुझे जो त्रुटि मिलती है वह है:

Setting up google-chrome-stable (33.0.1750.152-1) ...
/var/lib/dpkg/info/google-chrome-stable.postinst: 124: /var/lib/dpkg/info/google-chrome-stable.postinst: update-alternatives: not found
dpkg: error processing google-chrome-stable (--configure):
 subprocess installed post-installation script returned error exit status 127
Setting up bsnes (0.088-7) ...
/var/lib/dpkg/info/bsnes.postinst: 5: /var/lib/dpkg/info/bsnes.postinst: update-alternatives: not found
dpkg: error processing bsnes (--configure):
 subprocess installed post-installation script returned error exit status 127
Errors were encountered while processing:
 google-chrome-stable
 bsnes
E: Sub-process /usr/bin/dpkg returned an error code (1)

मैं Google और यहाँ पर उबंटू से खोज रहा हूं लेकिन काम करने का कोई हल नहीं मिला है। आमतौर पर सुझाए गए फ़िक्स को निम्नलिखित को चलाना है:

sudo apt-get clean && sudo apt-get autoremove
sudo apt-get -f install
sudo dpkg --configure -a

हालांकि यह काम नहीं करता है। Apt-get कमांड ऊपर के समान त्रुटि के साथ विफल हो जाती है और dpkg कमांड सिर्फ मदद नहीं करता है। दूसरी बात वे अक्सर इसे सिनैप्टिक या कमांड लाइन के माध्यम से शुद्ध करने का सुझाव देते हैं, जो भी विफल रहता है।

सहायता के लिए धन्यवाद

जवाबों:


60

उन्नत उपयोगकर्ताओं के लिए, अपने जोखिम पर उपयोग करें।

निम्नलिखित त्रुटि संदेश के अनुसार:

subprocess installed post-installation script returned error exit status 127

आप /var/lib/dpkg/info/[package_name].postinstसब कुछ संपादित करना चाहते हैं और टिप्पणी कर सकते हैं (या बेहतर अभी तक, इसे समझने और मुद्दे की पहचान करने की कोशिश apt-getकरें ), फिर प्रयास करें।

ध्यान दें कि हालांकि इस विशेष प्रश्न में संदेश "पोस्ट-इंस्टॉलेशन" की चिंता करता है, इसलिए इसके बजाय "प्री-रिमूवल" या "पोस्ट-रिमूवल" का उल्लेख किया जा सकता है (जिस स्थिति में फ़ाइल का एक्सटेंशन संपादित किया गया है .prermया होगा .postrm) ।


2
वास्तव में यह सबसे अच्छी विधि है। स्थापना रद्द dpkgकरना हमेशा मदद नहीं करता है।
दनाटेला

2
बहुत बहुत धन्यवाद। मैं ठीक करने के लिए किया था /var/lib/dpkg/info/[package_name].prermलेकिन अपनी पोस्ट सही दिशा दे दी है। निश्चित रूप से उन्नत उपयोगकर्ताओं के लिए हालांकि, यह जोखिम भरा है !
सबरफ़

सबसे अच्छा जवाब। धन्यवाद! सही .prermऔर .postrmफ़ाइलें समस्या को ठीक करते हैं।
फुसर

42

उनके अलावा जो आपने पहले ही पोस्ट किए हैं, कुछ अन्य कमांड हैं जो मददगार हो सकते हैं।

  • आटोक्लेन पुनः प्राप्त पैकेज फ़ाइलों के स्थानीय भंडार को साफ करता है।

    sudo apt-get autoclean
    
  • संकुल की स्थापना / निष्कासन। ☠ सावधानी के साथ प्रयोग करें

    sudo apt-get --force-yes install <pkgname>
    

    तथा

    sudo apt-get --force-yes remove <pkgname>
    

हमेशा की तरह, आप dpkgपैकेजों को स्थापित, हटाने और शुद्ध करने के लिए उपयोग कर सकते हैं ।

  • इंस्टॉल करें I

    sudo dpkg -i <pkgname>
    
  • हटाना

    sudo dpkg -r <pkgname>
    
  • शुद्ध करना

    sudo dpkg -P <pkgname>
    

Dpkg और apt-get --force-yes कमांड दोनों में वही त्रुटि है जो मुझे पहले मिल रही थी। ऑटोक्लेन एक त्रुटि वापस नहीं करता है, लेकिन दो टूटे हुए पैकेजों के साथ कुछ भी करने के लिए प्रतीत नहीं होता है।
बिजाक

@Bijak आपने निश्चित रूप से शुद्ध करने की कोशिश की होगी bsnes
उपयोगकर्ता

हां, dpkg -पी साथ, पर्ज apt-get, और Synaptic के साथ
बिज़ाक

का आउटपुट पोस्ट करेंdpkg -l |grep bsnes
पंजीकृत उपयोगकर्ता

आरएफ bsnes .088-7 सटीक SNES AMD64 / SuperFamicom एमुलेटर
बिज़ाक

27

इसलिए, अधिक googling और वास्तव में सावधानी से त्रुटि संदेशों के माध्यम से पढ़ने के बाद फिर से ऐसा लगता है कि इसे dpkgपुनः इंस्टॉल करने की आवश्यकता है।

sudo apt-get install --reinstall dpkg

यह क्या समस्या थी (यदि कोई इसे देखता है और देखता है) तो यह update-alternatives: not foundत्रुटि संदेश में था। जैसे ही dpkg को पुन: स्थापित किया गया, अन्य पैकेज सामान्य रूप से स्वचालित रूप से स्थापित करने के लिए आगे बढ़े।


3
केवल सही (और स्वीकृत) उत्तर शीर्ष सूची के वोट के list से कम के साथ सूची में नीचे क्यों है? +1
डेविड फ़ॉर्स्टर

एक के लिए: क्योंकि यह उन पैकेजों के लिए काम नहीं करता है जिन्हें अब डाउनलोड नहीं किया जा सकता है "लिनक्स-इमेज-एक्स्ट्रा-4.4.0-65-जेनेरिक का इंस्टालेशन संभव नहीं है, इसे डाउनलोड नहीं किया जा सकता है।"
जो

3
प्रश्न के शीर्षक के आधार पर यहां आने वाले किसी व्यक्ति के लिए यह संभवतः सबसे कम संभावना वाला समाधान है। लेकिन कारणों का एक बहुत एक इस समस्या के साथ खत्म हो सकता है, इसलिए वहाँ देखते हैं जाएगा प्रस्तावित "यह मेरे लिए काम करता है" समाधान का एक बहुत हो।
माइकल

यह वास्तव में काम नहीं करता है।
नेल्सनगॉन

15

आप इस /var/lib/dpkg/info/पथ में पैकेज फ़ाइल को निकाल सकते हैं और स्रोत को अपडेट कर सकते हैं।

sudo rm /var/lib/dpkg/info/[package_name].*
sudo dpkg --configure -a
sudo apt-get update

फिर, अपने पैकेज को पुनर्स्थापित करें sudo apt-get install [package_name]

डॉक्टर


4
वास्तव में आपका बेहतर उपयोग था sudo rm /var/lib/dpkg/info/[pakege_name].*। अन्यथा आप उसी नाम से शुरू होने वाले पैकेजों को भी हटा देंगे। वैसे भी, इसके लिए धन्यवाद, यह एकमात्र समाधान था जिसने मेरे लिए काम किया
smac89

13

यदि सभी अन्य विफल होते हैं। मैंने जो किया वह था मैंने पहली बार निर्देशिका को बदल दिया:

cd /var/lib/dpkg/info

फिर मैंने सब कुछ हटा दिया .postinst:

sudo rm *.postinst

फिर रिपॉजिटरी को अपडेट करें

sudo apt-get update

जब मैंने किया तो सब कुछ सामान्य हो गया:

sudo apt-get --force-yes install openjdk-7-jre-headless

6
यह सभी पोस्ट-इंस्टॉलेशन स्क्रिप्ट को प्रभावित पैकेज के बस को नहीं हटाता है । मेरी राय में थोड़ा बहुत अतिरंजित। -1
डेविड फ़ॉस्टर

यदि किसी विशेष पोस्ट-इंस्‍टॉल स्क्रिप्ट को पहचानना और हटाना आसान है, तो यह एक असफल पैकेज को हटाने का एक बहुत ही सुविधाजनक तरीका हो सकता है।
इयान मैकिनन

कर्नेल मुद्दों के साथ एक दुःस्वप्न का नाम बदलने के बाद। सिर्फ प्रभावित कर्नेल के पॉटस्टीन ने इस मुद्दे को तय किया
एंडी

5

यदि अन्य सभी विफल रहता है, तो आप पैकेज को मैन्युअल रूप से निकाल सकते हैं dpkg। भागना sudo dpkg -P bsnesचाहिए शुद्ध bsnes


2
dpkg: error processing package libcuda1-340 (--purge): package is in a very bad inconsistent state; you should reinstall it before attempting a removal
एंडोलिथ

2

मेरे मामले में apt-get install -fकाम किया। मैं mysql-workbench- कम्युनिटी स्थापित कर रहा था

पहले कोशिश की थी apt autoclean

मैंने देखा कि कुछ गुम निर्भरता के कारण dpkg त्रुटि थी जिसे जबरन मोड में स्थापित करके (निर्भरता स्थापित करके) ठीक किया जा सकता है


0
sudo apt-get install -f --reinstall coreutils init-system-helpers

ऊपर चलने के बाद, आप किसी भी पैकेज के लिए सामान्य रूप से स्थापित / अपग्रेड / हटा / शुद्ध कर सकते हैं।

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