क्या Apt उन संकुलों को हटा सकता है, जिन्हें सॉफ़्टवेयर की ज़रूरत होती है, जो उपयोगकर्ताओं ने स्रोत से इंस्टॉल किए हैं?


14

Apt अपनी रिपॉजिटरी या *.debफ़ाइलों से स्थापित संकुल के बीच निर्भरता को संभालता है । हालाँकि, ऐसे सॉफ़्टवेयर के बारे में जो उपयोगकर्ताओं ने पहले फ़ाइल बनाए ./configure && make && make installबिना स्रोत से संकलित और स्थापित किए हैं .deb? क्या यह संभव है कि एप्ट ऐसे सॉफ्टवेयर्स के लिए जरूरी पैकेज निकाल सकता है? स्रोत से सॉफ़्टवेयर इंस्टॉल करना /optया /usr/localअंतर बनाना होगा?


1
आप अपनी निर्भरता को स्थापित करने के लिए बाध्य करने के लिए, स्रोत से स्थापित पैकेज के लिए स्टैंड-इन के रूप में एक इक्विटी पैकेज स्थापित कर सकते हैं।
फहीम मीठा

जवाबों:


13

APT सॉफ़्टवेयर के बारे में कुछ भी नहीं जानता है जो मैन्युअल रूप से स्थापित किया गया था। यह नहीं पता है कि कौन सी लाइब्रेरी को सॉफ़्टवेयर की ज़रूरत है या कुछ भी।

जब एपीटी केवल दूसरे पैकेज की निर्भरता को पूरा करने के लिए एक पैकेज स्थापित करता है, तो यह पैकेज स्वचालित रूप से स्थापित के रूप में चिह्नित होता है। यदि आप उन सभी पैकेजों को हटा देते हैं जो स्वचालित रूप से इंस्टॉल किए गए पैकेज पर निर्भर करते हैं, तो आपके द्वारा चलाए जाने पर उस पैकेज को हटा दिया जाता है apt-get autoremove; उच्च स्तरीय APT को आम तौर पर अन्य रखरखाव के बाद ऐसा करने की पेशकश करेगा। स्थानीय रूप से इंस्टॉल किए गए सॉफ़्टवेयर द्वारा आवश्यक पैकेज को हटाने से बचने के लिए, इन पैकेजों को मैन्युअल रूप से इंस्टॉल किए गए के रूप में चिह्नित करें: या योग्यता में कुंजी।apt-mark manual PACKAGE-NAMEm

यह जानने के लिए कि लाइब्रेरी एक द्विआधारी निष्पादन योग्य आवश्यकताओं को क्या पैकेज देती है, चलाएं ldd /path/to/executable। युक्त प्रत्येक पंक्ति के लिए , उस लाइब्रेरी वाले पैकेज का नाम प्रदर्शित करने के लिए चलाएँ । स्क्रिप्ट के लिए, स्क्रिप्ट द्वारा उपयोग किए गए दुभाषिया को दिखाता है; सुनिश्चित करें कि यह दुभाषिया स्थापित है। किसी स्क्रिप्ट द्वारा पुस्तकालयों का उपयोग किया जाना कठिन हो सकता है, इसे खोजने का कोई सार्वभौमिक तरीका नहीं है।/usr/lib/SOMETHINGdpkg -S /usr/lib/SOMETHINGhead -n 1 /path/to/script

यदि आपने मैन्युअल रूप से अपने वितरण में मौजूद पैकेज का एक और हालिया संस्करण स्थापित किया है, तो वितरण के पैकेज की निर्भरता को देखें और उन्हें मैन्युअल रूप से स्थापित करने के लिए चिह्नित करें।


apt-getडेबियन में जेसी manualविकल्प नहीं है । इन मैनुअल बनाम ऑटो (मैटिक) इंस्टॉलेशन के संकेतों के apt-markबजाय मैं इसका उपयोग कर रहा हूं । ( apt-mark manual pkg, apt-mark showmanual pkg, apt-mark auto pkg, आदि)
Lekensteyn

@ Lekensteyn मेरा मतलब है apt-mark, धन्यवाद।
गिल्स एसओ-

14

aptऔर dpkgपूरी तरह से सॉफ़्टवेयर को हटा सकता है जो स्थानीय रूप से स्थापित अन्य सॉफ़्टवेयर द्वारा आवश्यक है जो पैकेज प्रबंधन प्रणाली के दायरे से बाहर है। इस तरह के सॉफ्टवेयर मौजूद हो सकते हैं aptऔर dpkgयह जानने का कोई तरीका नहीं है।

जिस स्थान पर ऐसा सॉफ़्टवेयर स्थापित किया गया है, /optउससे कोई फ़र्क नहीं पड़ता: यह /usr/localउपयोगकर्ताओं की होम निर्देशिकाओं में (या जिस स्थिति में भी sysadmin को अपनी उपस्थिति के बारे में पता नहीं हो सकता है) या कहीं भी, वास्तव में हो सकता है।

तकनीकी रूप से aptया dpkgउस सॉफ़्टवेयर को भी हटा सकता है जो अन्य सॉफ़्टवेयर द्वारा आवश्यक है जो पैकेज प्रबंधन प्रणाली का हिस्सा है, यदि बाद वाला सॉफ़्टवेयर यह घोषित करने में विफल रहता है कि यह पूर्व सॉफ़्टवेयर पर निर्भर करता है। हालाँकि, डिब पैकेज बनाने की प्रक्रिया में पैकेज मेंटेनर को रोकने में मदद करने के लिए ऑटोमेशन शामिल है, जैसे कि एक निर्भरता की घोषणा करने से भूलने से।

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