आप पूरी तरह से एक पैकेज कैसे निकाल सकते हैं?


188

मैं octave3.2पैकेज की एक साफ स्थापना करने की कोशिश कर रहा हूं ।

ऐसा करने के लिए, मैंने इसे हटा दिया, फिर इसे पुनः स्थापित करने का प्रयास किया।

जब मैंने पुन: स्थापित किया, तो एक त्रुटि हुई। यह पैकेज में एक बग हो सकता है, लेकिन मैं यह सुनिश्चित करना चाहता हूं कि मेरे पास सब कुछ हटा दिया जाए ताकि मैं एक साफ इंस्टॉल कर सकूं।

क्या ऐसा करना काफी है?

sudo apt-get --purge remove octave3.2

क्या कोई पैकेज को पुनर्स्थापित कर सकता है और पैकेज या निर्भरता सूची पर ध्यान दे सकता है ..?
उपयोगकर्ता 309924

की सिफारिश की यात्रा के इस
पंड्या

जवाबों:


185

यह पैकेजों के शुद्धिकरण के प्रभावों के बारे में एक बहुत ही सामान्य उत्तर है। आपकी स्थिति के लिए विशिष्ट सलाह के लिए, आपको अतिरिक्त जानकारी शामिल करने के लिए अपने प्रश्न को संपादित करना होगा - विशेष रूप से, आपको मिलने वाले त्रुटि संदेश का पूर्ण और सटीक पाठ।

पैकेजों को निकालना या उन्हें और उनके सभी वैश्विक (यानी, सिस्टमवाइड) कॉन्फ़िगरेशन फ़ाइलों को हटा देगा। यह आमतौर पर लोगों को क्या मतलब है जब वे एक पैकेज को पूरी तरह से हटाने के बारे में बात करते हैं।sudo apt purge ...sudo apt --purge remove ...

लेकिन इसका मतलब यह नहीं है कि आपका सिस्टम वैसा ही है जैसा पैकेज स्थापित होने से पहले था। विशेष रूप से:

  • यह उन पैकेजों को नहीं हटाता है जिन्हें निर्भरता के रूप में स्थापित किया गया था, जब आप उस पैकेज को स्थापित करते हैं जिसे अब आप हटा रहे हैं। उन पैकेजों को किसी भी अन्य पैकेजों की निर्भरता नहीं माना जाता है, और यह कि आपने उन्हें मैन्युअल रूप से स्थापित के रूप में चिह्नित नहीं किया है, sudo apt autoremoveतो आप (या यदि आप उनकी सिस्टीम कॉन्फ़िगरेशन फ़ाइलों को भी हटाना चाहते हैं) के साथ निर्भरता को हटा सकते हैं sudo apt --purge autoremove

  • यह नॉन-सिस्टमवाइड कॉन्फ़िगरेशन फ़ाइलों को नहीं हटाता है। विशेष रूप से, यह उपयोगकर्ता-विशिष्ट कॉन्फ़िगरेशन को नहीं हटाता है:

    • यह उपयोगकर्ताओं की होम निर्देशिकाओं में स्थित कॉन्फ़िगरेशन फ़ाइलों और निर्देशिकाओं को नहीं हटाता है (या .configउनके घर निर्देशिकाओं के उपनिर्देशिका में), सॉफ्टवेयर द्वारा प्रदान किए गए पैकेज प्रदान करता है।

      • यदि इन फ़ाइलों / फ़ोल्डरों को संग्रहीत नहीं किया जाता है .config, तो वे आमतौर पर .स्वयं के साथ शुरू होते हैं। किसी भी तरह से, आप उन्हें या ध्वज lsका उपयोग करके देख सकते हैं , और आप उन्हें Nautilus और अधिकांश अन्य फ़ाइल ब्राउज़रों / प्रबंधकों को + दबाकर या छुपी हुई फ़ाइलें देखें > पर जाकर देख सकते हैं ।-a-ACtrlH
    • यह मौजूदा उपयोगकर्ता-विशिष्ट कॉन्फ़िगरेशन फ़ाइलों में किए गए परिवर्तनों को उलट नहीं करता है।

    • यह नया नहीं निकालता है gconfया dconfचाबियाँ, या किसी रिवर्स gconfया dconfविन्यास बदलाव।

  • अन्य पैकेजों द्वारा प्रदान की गई मौजूदा सिस्टमवाइड कॉन्फ़िगरेशन फ़ाइलों में बदलावों का उपयोग करना purgeया उनके --purge removeस्थान पर removeबदलाव करना या उपयोगकर्ता द्वारा मैन्युअल रूप से निर्मित नहीं करना है। हालाँकि, कभी-कभी इस तरह के बदलाव पैकेज की स्थापना रद्द करने के द्वारा पूर्ववत कर दिए जाते हैं (भले ही यह नहीं purgeहै remove)।


61

कमांड का उपयोग करें:

sudo apt-get purge --auto-remove packagename

यह उन पैकेजों के साथ स्थापित की जाने वाली निर्भरता के साथ आवश्यक पैकेजों को शुद्ध करेगा। --auto-removeविकल्प के समान काम करता है sudo apt-get autoremove


1
इसने मेरी समस्या को हल कर दिया, विशेष रूप से सर्पोट के
टी। टोडुआ

7

जिस पैकेज को आप निकालना चाहते हैं, उसके नाम के लिए आप पहले देखें:

dpkg --list

फिर दिए गए पैकेज को हटा दें

sudo apt-get remove package_name

किसी भी संबंधित कोड को शुद्ध करें

sudo apt-get purge package_name

फिर ऑटोरेमोव

sudo apt-get autoremove

अंत में, एक साफ करें ताकि आप जांचें कि सब कुछ सही तरीके से हटा दिया गया है

sudo apt-get clean

आप संकुल सूची में जांचना चाहेंगे कि क्या आप जिसे हटाना चाहते थे वह अब सूचीबद्ध नहीं है, लेकिन यह वैकल्पिक है।

आपका दिन शुभ हो,


4

जब आप एक स्थापित कर रहे हों तो बेहतर तरीके से स्थापित अतिरिक्त निर्भरता पैकेज का ध्यान रखें।

The following extra packages will be installed: 
    libgssglue1 libnfsidmap2 libtirpc1 nfs-common rpcbind

यदि आप केवल मूल पैकेज निकालते हैं, तो निर्भरता पैकेज बना रह सकता है।

इसलिए आपको प्रत्येक का उपयोग करके मैन्युअल रूप से निकालना होगा

apt-get purge package_name

1
अगर मेरा कंसोल काफी ऊपर तक स्क्रॉल नहीं करता है, तो मुझे इन पैकेजों की एक सूची कैसे मिल सकती है
ल्यूक टेलर

@LukeTaylor apt-get install package_name > output फिर less output स्क्रॉलिंग के साथ सभी आउटपुट देखने के लिए।
हरिकृष्णन

2

मैन्युअल रूप से स्वतः-स्थापित निर्भर पैकेजों को हटाने के बजाय, निम्नलिखित का उपयोग करें:

 zanfilip @ zanfilip-VPCEB3L0E: ~ / jp / eclipse $ sudo apt-get --purge autoremove
    पैकेज सूची पढ़ना ... पूरा किया
    निर्भरता का पेड़       
    राज्य की जानकारी पढ़ना ... किया
    निम्नलिखित पैकेज को हटा दिया जाएगा
      libupstart1 * linux-headers-3.16.0-30 * linux-headers-3.16.0-30-जेनेरिक *
      linux-image-3.16.0-30- जेनेरिक * linux-image-extra-3.16.0-30- जेनेरिक *
    ० अपग्रेड करने के लिए, ० नव स्थापित करने के लिए, ५ हटाने के लिए और २३ अपग्रेड नहीं करने के लिए।
    इस ऑपरेशन के बाद, 279 एमबी डिस्क स्थान मुक्त हो जाएगा।
    क्या आप जारी रखना चाहते हैं? [Y n]


2

यदि आप कुछ सुरक्षित पैकेज हटाना चाहते हैं, तो आप इन कमांड का उपयोग कर सकते हैं:

dpkg --get-selections | grep PACKAGE_NAME | awk '{ print $1}'| xargs apt-get -y --purge autoremove

"-y" स्विच को मत भूलना क्योंकि अन्यथा apt-get व्यक्तिगत पैकेज को हटाने के बारे में पूछते रहेंगे और कुछ भी नहीं निकालेंगे।


2
यह उपयोगी हो सकता है, लेकिन विनाशकारी भी हो सकता है: यह आसानी से आपके द्वारा हटाए गए पैकेज से आसानी से मेल खा सकता है, और पुष्टि के बिना इसके कॉन्फ़िगरेशन को हटा दें! सौभाग्य से पैकेज के नाम एक रिक्तियां बाद से कभी नहीं, हम इसे बिलकुल पलट गया और ड्रॉप कर सकते हैं -y: apt-get --purge autoremove $(dpkg --get-selections | grep PACKAGE_NAME | awk '{ print $1}')। यह कुछ हद तक सुरक्षित होगा।
joeytwiddle

हो सकता है कि यह कमांड चलाने के लिए सुरक्षित होगा: dpkg --get-selections | grep PACKAGE_NAME | awk '{print $ 1}' पहले और फिर इसे xargs के साथ चलाएं यह एक बेहतर अभ्यास है ताकि उपयोगकर्ता यह देखे कि कमांड के परिणामस्वरूप क्या हटाया जाएगा।
केरम एर्सॉय

0

आपके पास एक और विकल्प, debfosterपैकेज का उपयोग कर रहा है। यह इंटरेक्टिव रूप से आश्रित पैकेजों के साथ हटाने (और पर्स) के लिए पैकेज ढूंढेगा और सुझाएगा।

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