Gentoo में सुरक्षित रूप से एक पैकेज की स्थापना रद्द करें


12

मैं जेंटू में एक विशिष्ट पैकेज को अनइंस्टॉल करना चाहता था और उभरते हुए मैन पेज के माध्यम से ब्राउज किया। मुझे --unmergeविकल्प मिला :

चेतावनी: यह क्रिया महत्वपूर्ण पैकेजों को हटा सकती है! सभी मिलान पैकेज निकालता है। यह निर्भरता की कोई जाँच नहीं करता है, इसलिए यह आपके सिस्टम के समुचित संचालन के लिए आवश्यक संकुल को हटा सकता है। इसके तर्क परमाणु या वायर्ड हो सकते हैं। --Unmerge , उपयोग --depclean या --prune के एक निर्भरता जागरूक संस्करण के लिए ।

हालाँकि, मैं यह जाँचना चाहता हूँ कि जो पैकेज मैं अनइंस्टॉल करना चाहता हूँ, वह सिस्टम में किसी अन्य संस्थापित पैकेज के लिए आवश्यक है या नहीं। --depcleanऔर --pruneवह कार्यक्षमता प्रदान नहीं करते हैं:

  • --depclean उन पैकेजों को हटा देता है जिन्हें निर्भरता के रूप में स्थापित किया गया था, लेकिन अब उनकी आवश्यकता नहीं है
  • --prune "आपके सिस्टम से एक पैकेज के सभी लेकिन उच्चतम स्थापित संस्करण को निकालता है"

क्या कोई निर्भरता-जाँच संस्करण नहीं है --unmerge?

जवाबों:


17

मुझे नहीं लगता कि depcleanआपके द्वारा बताए गए तरीके से काम करता है। किसी भी तर्क के बिना यह करता है, लेकिन यदि आप इसे एक पैकेज का नाम देते हैं तो यह unmergeएक अतिरिक्त निर्भरता की जांच के साथ काम करता है । से emerge(1):

डेक्लाइन एक निर्भरता जागरूक संस्करण के रूप में कार्य करता है --unmerge। जब एक या अधिक परमाणु दिए जाते हैं, तो यह उन मिलान वाले पैकेजों को खोल देगा, जिनमें कोई निर्भरता नहीं है। रिवर्स निर्भरता दिखाने के लिए --depcleanएक साथ उपयोग करें --verbose

मैं हमेशा व्यक्तिगत पैकेजों का उपयोग करने के लिए --depclean( -c) का उपयोग करता हूं ; यह बढ़िया काम करता है


6

मदद करने के लिए आता है:

equery d <atom>

आप पहले निर्भरता की जांच कर सकते हैं, फिर इसकी निर्भरता का निरीक्षण करने के बाद पैकेज को हटाने के लिए आगे बढ़ें।


5

एक ही परिणाम प्राप्त करने का एक और तरीका (हालांकि यह एक ऐसी कमांड नहीं है जो निर्भरता की जाँच के साथ अनमरज करता है):, emerge --deselect packageजो दुनिया फ़ाइल से पैकेज को हटा देता है। अब, रनिंग emerge --depcleanउस पैकेज को हटा देगा यदि इसे किसी अन्य पैकेज की आवश्यकता नहीं है।


क्या इसका मतलब यह है कि emerge --depcleanउन सभी पैकेजों को हटा दिया जाता है, जिनका उपयोग करके स्थापित किया गया था emerge --oneshot(जब तक कि उन पैकेजों को दुनिया के पैकेज की आवश्यकता न हो)?
डैनियल कुलमैन

@danielkullmann हाँ। यह संपूर्ण निर्भरता ग्राफ की गणना करता है और यह निकालता है कि दुनिया में किसी भी पैकेज के द्वारा क्या नहीं खींचा जाता है। आप emerge --noreplace --selectउन्हें पुनः स्थापित किए बिना पहले से ही स्थापित पैकेजों को जोड़ने के लिए उपयोग कर सकते हैं, btw।
njsg

1

कभी-कभी, emerge --unmergeयह चेतावनी संदेश देता है:

 * This action can remove important packages! In order to be safer, use
 * `emerge -pv --depclean <atom>` to check for reverse dependencies before
 * removing packages.

ऐसा लगता है कि किसी पैकेज को खोलने से पहले निर्भरता की जाँच करने के लिए यह अनुशंसित तरीका है। मुझे अभी भी उम्मीद है, हालांकि, इसे प्राप्त करने का एक बेहतर, अधिक स्वचालित, तरीका है।

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