Ubuntu में टूटे हुए पैकेज को कैसे हटाएं


38

मैं टूटे हुए पैकेज को नहीं हटा सकता। निम्नलिखित कमांड का उपयोग करें: sudo apt-get -f install लेकिन मुझे निम्नलिखित प्रतिक्रिया मिलती है:

Preparing to unpack .../nodejs_0.10.28-1chl1~trusty1_amd64.deb ...
Unpacking nodejs (0.10.28-1chl1~trusty1) over (0.10.25~dfsg2-2ubuntu1) ...
dpkg: error processing archive /var/cache/apt/archives/nodejs_0.10.28-1chl1~trusty1_amd64.deb (--unpack):
 trying to overwrite '/usr/share/man/man1/node.1.gz', which is also in package nodejs-legacy 0.10.25~dfsg2-2ubuntu1
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Processing triggers for man-db (2.6.7.1-1) ...
Errors were encountered while processing:
 /var/cache/apt/archives/nodejs_0.10.28-1chl1~trusty1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

मैंने विभिन्न कमांड की तरह कोशिश की

 2015  sudo apt-get clean
 2020  sudo dpkg --configure -a
 2023  sudo apt-get autoremove
 2034  sudo apt-get upgrade && sudo apt-get -f install

लेकिन मुझे कोई नतीजा नहीं मिला। मैं अन्तर्ग्रथनी स्थापित नहीं कर सकता। किसी भी विचार मैं टूटे हुए पैकेज को कैसे हटा सकता हूं?


यहाँ कुछ जवाब का सुझाव दिया है --force-remove-reinstreqऔर --force-overwrite। कृपया ध्यान दें कि आपको इन दोनों (विशेष रूप से पहले वाले) का उपयोग केवल तभी करना चाहिए जब आप लिनक्स विशेषज्ञ हों, क्योंकि यह आपके सिस्टम को पूरी तरह से तोड़ सकता है।
g_p

जवाबों:


55

ubuntu में टूटे हुए पैकेज को हटाने के लिए इस कमांड को चलाएँ।

sudo dpkg --remove --force-remove-reinstreq package_name 

पैकेज निकालने के बाद अपने सिस्टम को कमांड से अपडेट करें

sudo apt-get update

सफलतापूर्वक अपडेशन के बाद रीस्टार्ट सिस्टम।


5
यह आदेश हमेशा के रूप में यह आप प्रणाली अधिक टूट जाता है यह मरम्मत से परहेज किया जाना चाहिए
Rancho

2
@rancho यह किस पैकेज पर निर्भर करता है।
फिलिप

अच्छा है, जिस तरह से आप हमेशा पैकेज_नाम लिखते हैं, फिर भी मैं एक पागल प्रारूप में 900 लाइनों की सूची देखता हूं, उदाहरण के लिए Broken libopencv-highgui2.4v5:amd64 Conflicts on libopencv-highgui2.4 [ amd64 ] < 2.4.8+dfsg1-2ubuntu1 > ( libs ):। एलटीएस पर प्रतीक्षा ने वास्तव में मेरे लिए यह पागल चाल चली है।
nyxee

@rancho "यह आपको मरम्मत से अधिक प्रणाली को तोड़ता है" क्या आप विस्तृत कर सकते हैं? man dpkgबहुत मदद नहीं करता है।
स्टीफन गौरिचोन

यह केवल एक चीज थी जो मेरे लिए काम करती थी। मैंने पैकेज अपडेट करते समय अपना mysql तोड़ दिया। अब मैं शुद्ध या पुन: स्थापित नहीं कर सका। तो इससे मेरी जान बच गई।
अंकित सिंघानिया

11

अपना टर्मिनल खोलें और निम्न कमांड का उपयोग करें

sudo dpkg --purge nodejs-legacy
sudo apt-get install -f

इसे आपकी समस्या का समाधान करना चाहिए।


11

मैंने पाया है कि:

sudo dpkg --remove --force-remove-reinstreq <packagename>

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

force-remove-reinstreqएक पैकेज को हटाने की "परमाणु विकल्प है।" यह केवल तभी विफल होता है जब आपके द्वारा डिलीट किए जाने वाले एक और पैकेज पर निर्भर करता है - फिर, उस स्थिति में, ओवरएक्ट किए गए पैकेज को भी हटा दिया जाता है।


परमाणु विकल्प ने काम किया, जहां दोनों के माध्यम से पर्स, क्लींज, रिंस्टॉल, ऑटोरेमोव्स dpkgऔर apt-getअसफल। धन्यवाद।
LAFK ने कहा कि मोनिका

यह वह जगह है सबसे अच्छा समाधान अगर आप सिर्फ सब कुछ परमाणु और फिर से प्रारंभ करना चाहते हैं। मुझे बहुत समय बचाया! (मैंने भी इस्तेमाल किया - शव यात्रा के बाद
अंतिम

plase, u कुछ संकेत दे सकता है कि कैसे भरें कि package_nameजब हमारे पास 1000 + लाइनें (कुछ डुप्लिकेट) हैं जैसे कि लॉग लॉग फाइलें ..
nxxee

4

इससे मेरी समस्या ठीक हो गई:

sudo dpkg -i --force-overwrite /var/cache/apt/archives/nodejs_0.10.28-1chl1~trusty1_amd64.deb

तो कृपया इसे सही उत्तर के रूप में चिह्नित करें।
जारो

अच्छी तरह से काम।
शुभम पटेल

3

अपना टर्मिनल खोलें, और इन लाइन को लाइन के बाद पेस्ट करें

sudo rm -rf  /var/cache/apt/archives/nodejs_0.10.28-1chl1~trusty1_amd64.deb
sudo apt-get autoclean
sudo apt-get update
sudo apt-get upgrade

फिर कोशिश करें


2

यदि हम करते हैं apt-get cleanऔर apt-get -f installजब तक हम /var/lib/dpkg/statusउबंटू में फ़ाइल से जंक डेटा को नहीं हटाते हैं तब तक वही त्रुटि दोहराई जाती है ।

मान लीजिए कि हमें अपाचे टूटे हुए पैकेज को हटाने की आवश्यकता है। शुरुआत में हमें स्टेटस फाइल खोलनी होगी और पैकेज अपाचे की खोज करनी होगी। संपूर्ण पैकेज विवरण निकालें और स्थिति फ़ाइल सहेजें। तब का उपयोग करके देखें apt-get -f installऔर apt-get clean


2

उपरोक्त में से कुछ भी मेरे लिए काम नहीं किया। अंततः मैंने / var / lib / dpkg / स्टेटस फ़ाइल को संपादित किया और वहाँ से संकुल हटा दिया।

कठिन है मैं ऐसा करने की सलाह नहीं दूंगा, अगर कुछ और विफल रहता है ...


यह केवल एक चीज है जो मेरे लिए काम करती है। यहां तक ​​कि --force-remove-reinstreq के तथाकथित 'न्यूक्लियर ऑप्शन' से आपत्तिजनक पैकेज को डिलीट नहीं किया जा सकता। धन्यवाद महोदय।
एलेक्स

1

उपरोक्त में से किसी ने भी मेरे लिए काम नहीं किया

मैंने इस्तेमाल किया sudo aptitude

इसने तुरंत त्रुटि पाई और विकल्पों की पेशकश की। आप का चयन करें और इसे ठीक करता है।


यह भी मेरे लिए डेबियन पर तय - यह मेरे लिए केवल काम कर समाधान था। मेरे लिए काम करने से पहले कोई भी टिप्पणी नहीं! धन्यवाद!
हिरबोड

0

यहां एक है:

अपनी पैकेज सूची को इस तरह अपडेट करें

 sudo apt-get update

फिर किसी भी आंशिक पैकेज को साफ करें

 sudo apt-get autoclean

अब apt कैश को साफ़ करें

 sudo apt-get clean

अब किसी भी अनावश्यक निर्भरता को हटा दें

 sudo apt-get autoremove

ऊपर दिए गए कमांड से, आप किसी भी टूटे हुए पैकेज की पहचान कर सकते हैं और उसे इस तरह से हटा सकते हैं

 sudo dpkg --remove --force-remove-reinstreq package_name

अंत में आश्रितों के साथ किसी भी अन्य पैकेज को मॉपअप

 sudo apt-get -f install 

मुझे बताओ कि यह कैसे जाता है।


मुझे लगता है कि यह आदेश गलत है: `sudo dpkg --remove -force --force-remove-reinstreq package_name।
जुआन सिमोन

जी ... तो कौन सा सही तरीका है?
ओलू स्मिथ

0
  1. आज या कल स्थापित किए गए सभी पैकेजों को क्वेरी करें awk -v foo=$(date '+%Y-%m-%d') -v bar=$(date -d "yesterday" '+%Y-%m-%d') '($1==foo || $1==bar) && $3~/^install$/ { print $4 }' /var/log/dpkg.log
  2. शराब- qqintl: i386 समस्या का कारण बना, इसलिए मैं पैकेज को हटा देता हूं sudo dpkg -r wine-qqintl:i386

  3. किया हुआ।


1
ठीक है, हम हाल ही में उस तरह के स्थापित पैकेज प्राप्त कर सकते हैं, लेकिन यह उस प्रश्न का उत्तर नहीं देता है जो पूछता है कि टूटे हुए पैकेजों को कैसे हटाया जाए
Zanna

0

मुझे टूटी कोड़ी पैकेज की समस्या थी। मैंने सिंटैप्टिक पैकेज मैनेजर खोला और पैकेज का पता लगाने के लिए "ब्रेक" फिल्टर का उपयोग किया और इसे पूरी तरह से हटाने के लिए चिह्नित किया। यह एक विजेता की तरह काम करता था।

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