जवाबों:
remove
इसके नाम पर संकुल का नाम रखा गया।autoremove
सभी स्वचालित रूप से स्थापित किए गए पैकेजों की स्थापना करता है जिनकी अब आवश्यकता नहीं है। इसके बाद पैकेज के नामों को सूचीबद्ध करना गलत है autoremove
; उनकी उपेक्षा की जाएगी (और सभी योग्य पैकेज हटा दिए जाएंगे), जो कि शायद आपका इरादा नहीं है।--purge
संकुल के साथ जुड़े सिस्टमव्यापी विन्यास फाइल को हटाने के साथ ही हटा दिया जाता है। यह एक कमांड के साथ होना चाहिए, जैसे कि remove
या autoremove
। --purge
झंडा एक आदेश की कार्रवाई को संशोधित करता है; यह अपने आप कार्य नहीं करता है।purge
का मतलब वही है --purge remove
जो (जैसा है वही remove --purge
)। purge
दो बार कहना गलत है ; दूसरे purge
को एक पैकेज के नाम के रूप में व्याख्या की purge
जाती है, जो कि संभवत: वह नहीं है जो आप चाहते हैं।यह समझने के लिए कि वे आदेश क्या करते हैं और वे कैसे भिन्न हैं, यह दो अवधारणाओं को समझने में मदद करता है (और शायद आवश्यक भी है):
एक स्थापित पैकेज या तो मैन्युअल रूप से या स्वचालित रूप से स्थापित है।
जब आप स्थापना के लिए एक पैकेज निर्दिष्ट करते हैं, और यह स्थापित होता है, तो यह मैन्युअल रूप से स्थापित होता है।
लेकिन अन्य पैकेज भी स्थापित किए जा सकते हैं। अधिकांश पैकेजों में निर्भरताएं होती हैं - अन्य पैकेज जिन्हें स्थापित किया जाना चाहिए, उन पैकेजों के अनुसार काम करने के लिए। जब आप एक पैकेज स्थापित करते हैं, तो उसकी निर्भरताएं (यानी, उस पर निर्भर अन्य पैकेज) स्थापित होती हैं, केवल उन लोगों को छोड़कर जो पहले स्थापित किए गए थे।
जब एक पैकेज आपके द्वारा स्थापित किए जाने के लिए निर्दिष्ट नहीं किया जाता है, लेकिन इसके बजाय आपको स्थापित किए गए पैकेज की निर्भरता के रूप में स्थापित किया जाता है, तो यह स्वचालित रूप से स्थापित होता है।
कृपया ध्यान दें कि जब आपके पास दो पैकेज स्थापित हैं और उनमें से एक दूसरे की निर्भरता है, तो इसका मतलब यह नहीं है कि निर्भरता स्वचालित रूप से स्थापित है। यह भी संभव है कि निर्भरता मैन्युअल रूप से स्थापित की गई थी (यानी, आपके द्वारा निर्दिष्ट, उदाहरण के लिए, उस पैकेज के रूप में एक ही समय में या उस पर निर्भर होने से पहले स्थापित)।
आखिरकार:
apt-mark
कमांड के साथ ) चिह्नित कर सकते हैं , इससे कोई फर्क नहीं पड़ता कि कैसे या किन परिस्थितियों में वे वास्तव में स्थापित थे।आमतौर पर, प्रत्येक स्वचालित रूप से स्थापित पैकेज के लिए आपके पास कम से कम एक मैन्युअल रूप से स्थापित पैकेज होगा जो उस पर निर्भर करता है (और जिसके कारण यह स्वचालित रूप से स्थापित हो जाता है)। हालाँकि, यदि आप तब स्वचालित रूप से स्थापित पैकेज पर निर्भर सभी मैन्युअल रूप से स्थापित पैकेजों को हटा देते हैं, तो स्वचालित रूप से स्थापित पैकेज आवश्यक नहीं होगा, लेकिन फिर भी स्थापित किया जाएगा।
apt-get autoremove
स्वचालित रूप से स्थापित संकुल को हटाता है जो अब उनके आधार पर कोई भी मैन्युअल रूप से संस्थापित संकुल नहीं है।
एक पैकेज उन फ़ाइलों को प्रदान करता है जो होने का इरादा रखते हैं, और बने रहने के लिए, हर सिस्टम पर वही होता है जहां उस पैकेज का संस्करण स्थापित होता है। ऐसी फाइलें इंस्टॉल किए गए कार्यक्रमों के लिए निष्पादनयोग्य, संसाधन, प्रलेखन और अन्य "संपत्ति" प्रदान करती हैं। हम आमतौर पर इन "फाइलों" को कहते हैं जो एक पैकेज प्रदान करता है।
लेकिन एक पैकेज अन्य फाइलें भी प्रदान करता है, जिनका उद्देश्य (संभवतः) बदला जाना है। इन्हें ग्लोबल (या सिस्टमवाइड) कॉन्फ़िगरेशन फाइल कहा जाता है। वे लगभग हमेशा /etc
निर्देशिका में स्थापित होते हैं , और स्थापित कार्यक्रमों के व्यवहार को बदलने के लिए वे स्वचालित रूप से और मैन्युअल रूप से संशोधित हो सकते हैं। उदाहरण के लिए, sudo
कॉन्फ़िगरेशन फ़ाइल /etc/sudoers
और अधिक कॉन्फ़िगरेशन फ़ाइलों के लिए निर्देशिका है /etc/sudoers.d
। वह फ़ाइल, और उस निर्देशिका में जोड़ी गई कोई भी फ़ाइल, निर्दिष्ट करती sudo
है कि किस तरीके से उपयोग करने की अनुमति है।
आमतौर पर यह वांछित है कि पैकेज की स्थापना रद्द करना और फिर इसे वापस स्थापित करने के तरीके से व्यवहार में बदलाव नहीं करना चाहिए (जब तक कि इसकी पैकेज फाइलें भ्रष्ट नहीं थीं और इसलिए आपने इसे पुनः स्थापित किया है, निश्चित रूप से)। इसलिए, आमतौर पर जब एक पैकेज की स्थापना रद्द की जाती है, तो इसकी पैकेज फाइलें हटा दी जाती हैं, लेकिन इसकी सिस्टमवाइड कॉन्फ़िगरेशन फाइलें अनछुई रह जाती हैं।
जब आप किसी पैकेज को यह निर्दिष्ट किए बिना अनइंस्टॉल कर देते हैं कि इसकी सिस्टीम कॉन्फ़िगरेशन फाइल भी डिलीट होने वाली हैं, तो उसे पैकेज को "रिमूव करना" कहा जाता है।
यदि आप पैकेज को अनइंस्टॉल करते समय पैकेज के सिस्टमिफ़ाइज्ड विन्यास फाइल को हटाना चाहते हैं, तो इसे पैकेज को "पर्जिंग" कहा जाता है।
apt-get remove
एक पैकेज निकाल देंगे; यही है, यह पैकेज की स्थापना रद्द कर देगा लेकिन इसकी सिस्टमव्यापी कॉन्फ़िगरेशन फ़ाइलों को छोड़ देगा।
apt-get purge
एक पैकेज शुद्ध करेगा; यही है, यह पैकेज को अनइंस्टॉल करेगा और इसकी सिस्टीम कॉन्फ़िगरेशन फाइल को डिलीट करना भी सुनिश्चित करेगा।
संकुल को शुद्ध करने का दूसरा तरीका --purge
ध्वज का उपयोग करना है । यह नहीं बताता apt-get
कि क्या करना है; इसके बजाय, यह संशोधित करता है कि क्या शर्तें (या "कमांड") जैसे remove
इसे करने के लिए कहें। --purge
झंडा किसी भी पैकेज uninstallations पैकेज (रों) की स्थापना रद्द किए जाने के लिए प्रणाली में विन्यास फाइल का विलोपन के साथ किया जाना होता है। दूसरे शब्दों में, --purge
ध्वज निष्कासन को पर्स में बदल देता है।
--purge
जब हमारे पास purge
कमान है तो हमारे पास झंडा क्यों है ? सब के बाद, के sudo apt-get --purge remove packagename
बराबर नहीं है sudo apt-get purge packagename
। वे बराबर हैं। जहां --purge
काम आता है, जब आप इसके अलावा अन्य कमांड के व्यवहार को संशोधित करना चाहते हैं remove
।
उदाहरण के लिए, मान लें कि आप स्वचालित रूप से इंस्टॉल किए गए संकुल को अनइंस्टॉल करना चाहते हैं जिनकी अब आवश्यकता नहीं है (क्योंकि उनके आधार पर मैन्युअल रूप से स्थापित पैकेज नहीं हैं), लेकिन आप इन स्वचालित रूप से स्थापित संकुल को हटाना नहीं चाहते हैं, आप हटाना भी चाहते हैं उनकी व्यवस्थित विन्यास फाइल। तब आप चला सकते हैं:
sudo apt-get --purge autoremove
आइए एक और उपयोग पर विचार करें --purge
। एक झंडा कहा जाता है --reinstall
, जो इंस्टॉलेशन में इंस्टॉलेशन को बदल देता है। यह कहना है कि, आम तौर पर, जब आप पहले से स्थापित पैकेज को स्थापित करने का प्रयास करते हैं, तो या तो कुछ भी नहीं होगा, या (यदि पैकेज स्वचालित रूप से स्थापित है) पैकेज मैन्युअल रूप से स्थापित किया जाएगा। लेकिन --reinstall
झंडे के साथ , पहले से स्थापित पैकेज को स्थापित करने के कारण इसे हटा दिया जाता है और फिर वापस स्थापित किया जाता है :
sudo apt-get --reinstall install packagename
लेकिन मान लें कि आप जिस पैकेज को पुनः स्थापित कर रहे हैं, उसके सिस्टीम विन्यास फाइल को हटाना चाहते हैं। यह कुछ सामान्य है; जब कोई पैकेज काम नहीं कर रहा होता है और आपको पता नहीं होता है, तो आप इसे पुनः स्थापित करने का प्रयास कर सकते हैं, और इसकी कॉन्फ़िगरेशन फ़ाइलों को भी हटा सकते हैं ताकि इसका कॉन्फ़िगरेशन डिफ़ॉल्ट पर रीसेट हो जाए। इसे प्राप्त करने के लिए, आप चला सकते हैं:
sudo apt-get --purge --reinstall install packagename
--reinstall
पुनर्स्थापना में बदल जाता है अधिष्ठापन (यानी, हटाने स्थापना के बाद), और --purge
शुद्धिकरण में पुनर्स्थापना के हटाने हिस्सा बदल जाता है।
अब यह स्पष्ट होना चाहिए कि आपके प्रत्येक उदाहरण के apt-get
आदेश क्या करते हैं:
sudo apt-get autoremove --purge packagenames
यह पर्स स्वचालित रूप से उन पैकेजों को स्थापित करता है जिनके पास अब कोई भी मैन्युअल रूप से स्थापित पैकेज नहीं हैं जो उन पर निर्भर करते हैं। यही है, यह उन पैकेजों को अनइंस्टॉल करता है (जो उनकी पैकेज फ़ाइलों को हटाने पर जोर देता है), और यह उनके सिस्टमफाइ किए गए कॉन्फ़िगरेशन फ़ाइलों को भी हटा देता है।
यहाँ, packagenames
कुछ नहीं करता है। विशेष रूप से, यदि आप केवल उन पैकेजों को हटाने का इरादा रखते हैं जिनके नाम वहां सूचीबद्ध हैं, तो यह आपके व्यवहार का उद्देश्य नहीं होगा।
sudo apt-get remove --purge packagenames
यह शुद्ध करता है packagenames
; यह मानते हुए packagenames
कि पैकेज नामों की एक व्हाट्सएप से अलग सूची है, यह उन सभी को शुद्ध करेगा। यही है, यह उन्हें अनइंस्टॉल करेगा (जो अपनी पैकेज फ़ाइलों को हटाने के लिए मजबूर करता है), और उनकी सिस्टमव्यापी कॉन्फ़िगरेशन फ़ाइलों को भी हटा देगा।
यदि सूचीबद्ध किसी भी पैकेज को packagenames
स्थापित नहीं किया गया है, तो सूची में इसकी उपस्थिति का कोई प्रभाव नहीं पड़ेगा (सिवाय इसके कि आपको सूचित किया जाएगा कि यह स्थापित नहीं था)। यदि आप उन पैकेज नामों को सूचीबद्ध करते हैं जो किसी भी वास्तविक पैकेज का नाम नहीं हैं, तो कमांड एक त्रुटि के साथ विफल हो जाएगी ।unable to locate packagename
sudo apt-get purge purge packagenmaes
यदि आप purge
उस कमांड में से किसी एक को हटाते हैं , तो यह पिछले वाले के बराबर होगा। जैसा कि यह खड़ा है, यह नामक एक पैकेज को शुद्ध करने की कोशिश करता है purge
, और इसमें सूचीबद्ध पैकेजों को शुद्ध करने के लिए भी packagenames
। चूंकि purge
किसी भी पैकेज का नाम नहीं है, यह एक त्रुटि संदेश के साथ विफल हो जाएगा।
sudo apt-get remove packagenames
यह सूचीबद्ध पैकेजों को हटा packagenames
देता है, जो उनकी पैकेज फ़ाइलों को हटाने पर जोर देता है। यह उनके सिस्टमवाइड कॉन्फ़िगरेशन फाइल को डिलीट नहीं करता है (क्योंकि यह केवल एक रिमूवल है, न कि पर्ज)।
sudo apt-get autoremove
यह अनइंस्टॉल स्वचालित रूप से उन संकुल को स्थापित करता है जिनके पास अब कोई भी मैन्युअल रूप से स्थापित संकुल नहीं है जो उन पर निर्भर करता है। यह उनकी पैकेज फ़ाइलों को हटाने जरूरत पर जोर देता है, लेकिन नहीं उनके प्रणाली में विन्यास फाइल (यह है कि, यह एक हटाने नहीं बल्कि एक पर्ज है)।
उपयोग कैसे करें के बारे में अधिक जानकारी के लिए apt-get
, मैं इसके मैनुअल पेज की सिफारिश करता हूं । अधिक सामान्य जानकारी के लिए, यह मार्गदर्शिका देखें ।