आधा-स्थापित पैकेज को ठीक करें


42

मुझे sudo apt-get upgradeबताते हुए त्रुटि हो रही है :

dpkg: error processing libgfortran3:amd64 (--configure):
  package libgfortran3:amd64 is not ready for configuration
  cannot configure (current status `half-installed')
Errors were encountered while processing:
  libgfortran3:amd64
E: Sub-process /usr/bin/dpkg returned an error code (1)

यह स्थापना को अवरुद्ध करने / अन्य अनुप्रयोगों को अपग्रेड करने के लिए नहीं लगता है। मेरा मानना ​​है कि यह समस्या मेरे पीसी के सीधे बंद होने के कारण उत्पन्न हुई, जबकि एप्लिकेशन को अपग्रेड किया जा रहा था।

मैं इसे कैसे ठीक करूं?


जवाबों:


38
sudo dpkg --remove --force-remove-reinstreq --dry-run libgfortran3:amd64

वह सिर्फ सूखा है। मुझे यकीन नहीं है कि हटाने libgfortran3से क्या होगा लेकिन इसे चलाएं और देखें। यह मानते हुए कि यह पूरे सिस्टम को प्रभावित करने वाला नहीं है, इसे फिर से बिना चलाएं --dry-runऔर फिर आप उन sudo apt-get install ...पैकेजों को वापस कर सकते हैं जिनकी आपको आवश्यकता है।


4
काम किया, धन्यवाद! रिकॉर्ड के लिए, मैं इसे भाग गया और यह कहा dpkg: warning: package is in a very bad inconsistent state; you should reinstall it before attempting a removalतो मैं से मैन्युअल रूप से पैकेज डाउनलोड किया packages.ubuntu.com और भाग गया sudo dpkg -i WHERE/THE/DOWNLOADED/PACKAGE/IS। फिर सब अच्छा हो गया।
बोरा एम। अल्पर

1
मेरे मामले में, इन निर्देशों का पालन करने के बाद, बस 'apt-get install -f' को चलाने से पैकेज को फिर से इंस्टॉल किया गया और इसकी वजह से टूटी हुई निर्भरता के साथ कई अन्य लोगों को भी निर्धारित किया गया। यह डेबियन 7.
bchurchill

बिना --dry-run, जैसा कि आपने कहा, यह मेरे लिए काम करता है। धन्यवाद!
फ़ोरवस

69

आधे स्थापित पैकेज त्रुटि के लिए, --reinstall मेरे लिए काम करता है:

sudo apt-get install --reinstall packagename 

1
हां, लेकिन एक चेतावनी है कि पेकेजेनैम को फिर से स्थापित करने के बाद, एप्टी-गेट किसी भी आधे-कॉन्फ़िगर पैकेज को कॉन्फ़िगर करने के लिए आगे बढ़ेगा।
सेड्रिक नाइट

5
यह स्वीकृत उत्तर इमो से अधिक सुरक्षित है।
ज़ना

sudo apt-get install --reinstal ncurses-base और बाद में मैंने sudo apt-get अपडेट को रूट यूजर (sudo -s) का उपयोग करके चलाया, यह ठीक उसी तरह काम किया ...
ArifMustafa

महान। केवल उस समाधान से मेरी समस्या हल हो गई
iWizard

यह मेरे लिए किया था। php-pear मुझे सिरदर्द दे रहा था। धन्यवाद!
पीसीरवलहो

6
sudo apt install --reinstall packagename

यह आकर्षण की तरह काम करता है। इसने एक ऐसे मुद्दे को सुलझाया जो मैं महीनों से अनुभव कर रहा था। मेरा मामला पैकेज के साथ थाlibmysqlcppconn7v5

मैंने जो किया वह सब चला sudo apt install --reinstall libmysqlcppconn7v5


2

यदि आप इसे GUI के माध्यम से ठीक करना चाहते हैं, तो आप synaptic का उपयोग कर सकते हैं। सिनैप्टिक एक उत्कृष्ट पैकेज प्रबंधन उपकरण है जिसका उपयोग ubuntu के पुराने संस्करणों में शामिल किया जाता था। इसे स्थापित करने के लिए:

sudo apt-get install synaptic

फिक्स टूटे पैकेज पर क्लिक करें।


synaptic टूटी हुई श्रेणी में पैकेज को सूचीबद्ध नहीं करता है :(
बरुन

2

मुझे पैकेज किबाना के साथ एक ही "आधा-स्थापित पैकेज" समस्या मिली। मुझे निम्नलिखित त्रुटि मिली:

dpkg: error processing kibana (--configure):
package kibana is not ready for configuration
cannot configure (current status 'half-installed')
Errors were encountered while processing:
  kibana
E: Sub-process /usr/bin/dpkg returned an error code (1)

अगर किसी को अभी भी इस तरह की समस्या का सामना करना पड़ रहा है, तो आप यह कोशिश कर सकते हैं:

sudo rm /var/lib/dpkg/info/kibana*
cd /var/cache/apt/archives
sudo rm kibana*
apt-get --reinstall install kibana

यह मेरे लिए काम करता है। आपको बस 'किबना' शब्द को अपने आधे-अधूरे पैकेज के नाम से बदलना होगा।


2

यह पैकेज को फिर से स्थापित किए बिना आपकी समस्या को ठीक करना चाहिए।

sudo dpkg --force-remove-reinstreq --remove <package_name here>

के बाद: sudo apt-get update


क्यों --force-remove-reinstreq? पैकेज प्रबंधक यह नहीं बताता है कि पुन: स्थापना की आवश्यकता है। आम तौर पर, एक नियमित निष्कासन अप्रभावित संकुल के लिए ठीक काम करता है। -1
डेविड फ़ॉस्टर

यह सिर्फ वही है जो मैं करता हूं जब sudo apt-get remove <packageविकल्प से बाहर हो जाता है और मैं उस आधे-स्थापित पैकेज को फिर से स्थापित नहीं करना चाहता हूं। तब, मैं --force-remove-reinstreqउन जंक को हटाने के लिए उपयोग करता हूं .. PS: यह लिनक्स मिंट पर है .. मुझे संदेह है कि क्या यह होगा लिनक्स उबंटू पर आधारित होने के कारण कोई भी भिन्न हो ..
CodeGeass

1
पैकेज प्रबंधक सभी डेबियन-आधारित वितरणों में एक ही काम करता है (यह वही है जो सभी dpkgके लिए खड़ा है), लेकिन आपको --force-*"बस के मामले में" का उपयोग नहीं करना चाहिए । त्रुटि संदेश एक कारण के लिए हैं और अनुभवहीन उपयोगकर्ताओं द्वारा हल्के में नहीं लिया जाना चाहिए, यही कारण है कि आपको --force-*उनके लिए अनावश्यक विकल्पों का सुझाव नहीं देना चाहिए । अन्यथा हम केवल हमेशा उपयोग करने --force-allया बेहतर करने की सिफारिश कर सकते हैं , फिर भी --force-*विकल्पों को dpkgपूरी तरह से हटा दें और उन्हें डिफ़ॉल्ट व्यवहार करें क्योंकि यह आसान और अधिक सुविधाजनक होगा।
डेविड फ़ॉस्टर

ठीक है, यह स्वीकार करें ... मैं काम करने के बारे में अधिक चिंतित था, यह जानने के बाद कि क्या और कैसे किया जाता है .. क्षमा याचना ..
संहिता १३'१६

हम्म ... मैं सिर्फ यह देख रहा हूं कि स्वीकृत उत्तर वही बताता है। इसलिए मैं --force-remove-reinstreqअनावश्यक होने के बारे में गलत हो सकता हूं । लेकिन इसका मतलब यह भी है कि आपका उत्तर (लगभग) इसका एक डुप्लिकेट है। अगली बार किस्मत तुम्हारा साथ देगी।
डेविड फोएस्टर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.