विंडोज, मैकओएस और एंड्रॉइड के विपरीत, उबंटू- और सामान्य रूप से लिनक्स पर सॉफ्टवेयर-एक पैकेज के रूप में वितरित नहीं किया जाता है। इसके बजाय, जब आप कोई एप्लिकेशन इंस्टॉल करते हैं, तो आपके सिस्टम का पैकेज मैनेजर मुख्य ऐप पैकेज और उसकी निर्भरता सहित कई पैकेज डाउनलोड करता है। हालांकि, यह केवल लिनक्स पर पारंपरिक पैकेज इंस्टॉलेशन के लिए सही है यानी पैकेज मैनेजर का उपयोग करना।
स्थापना के दौरान कौन सी अतिरिक्त निर्भरताएँ डाउनलोड की जाती हैं, यह जानना शुरुआती और उन्नत उपयोगकर्ताओं के लिए समान रूप से फायदेमंद हो सकता है। इस तरह, किसी का अपने सिस्टम पर संस्थापित संकुल पर पूर्ण नियंत्रण होता है।
आइए देखें कि आप उबंटू पर पैकेज की निर्भरता की जांच कैसे कर सकते हैं।
पैकेज डिपेंडेंसी क्या हैं?
निर्भरता लिनक्स में किसी एप्लिकेशन के उचित कार्य के लिए आवश्यक पैकेजों का समर्थन कर रही है। उदाहरण के लिए, यदि आप उबंटू पर वीएलसी मीडिया प्लेयर डाउनलोड करना चाहते हैं, तो एपीटी कुछ अतिरिक्त पैकेज स्थापित करेगा जैसे libc6 और जीसीसी , प्राथमिक "vlc . के अतिरिक्त " पैकेज। एक निर्भरता में अन्य पैकेज भी हो सकते हैं, इसलिए इसकी निर्भरता के रूप में, एक पदानुक्रमित संरचना का निर्माण होता है।
चूंकि लिनक्स पैकेज अन्योन्याश्रित हैं, लगभग हर सॉफ्टवेयर को अतिरिक्त पैकेज की आवश्यकता होती है जिसे आपको अपने सिस्टम पर स्थापित करना होता है।
यद्यपि एपीटी जैसे पैकेज प्रबंधक उक्त निर्भरताओं के प्रबंधन और स्थापना को स्वचालित करते हैं, त्रुटियाँ तब होती हैं जब आप स्रोत से मैन्युअल रूप से पैकेज बनाने का प्रयास करते हैं। हालांकि, आप केवल उपयुक्त इंस्टॉल . का उपयोग करके अपने सिस्टम पर आवश्यक निर्भरता स्थापित करके ऐसी त्रुटियों को हल कर सकते हैं आदेश।
Linux में पैकेज निर्भरता कैसे जांचें
सौभाग्य से, उबंटू पर, पैकेज की निर्भरता की सूची प्राप्त करने के कई तरीके हैं। एपीटी, उबंटू और डेबियन-आधारित डिस्ट्रोस में डिफ़ॉल्ट पैकेज मैनेजर, एक पैकेज की निर्भरता-संबंधी जानकारी प्राप्त करने के लिए कई कमांड प्रदान करता है।
APT पैकेज मैनेजर का उपयोग करना
पैकेज से जुड़ी निर्भरताओं की सूची प्राप्त करने के लिए आप उबंटू में एपीटी का उपयोग कर सकते हैं। कमांड का मूल सिंटैक्स है:
sudo apt depends packagename
उदाहरण के लिए, रिदमबॉक्स . के लिए निर्भरता की जांच करने के लिए पैकेज:
sudo apt depends rhythmbox
निर्भरताओं की सूची के अलावा, आउटपुट में अनुशंसित और सुझाए गए पैकेज भी शामिल होंगे जिन्हें आप रिदमबॉक्स के साथ स्थापित कर सकते हैं ।
वैकल्पिक रूप से, आप उपयुक्त-कैश . का भी उपयोग कर सकते हैं समान आउटपुट प्राप्त करने के लिए कमांड।
sudo apt-cache depends rhythmbox
किसी विशिष्ट पैकेज से संबंधित अतिरिक्त जानकारी प्राप्त करने के लिए, दिखाएं . का उपयोग करें निर्भर करता है . के बजाय विधि ।
sudo apt show rhythmbox
sudo apt-cache show rhythmbox
आउटपुट:
dpkg का उपयोग करके निर्भरता को सूचीबद्ध करना
यदि आपने अपने सिस्टम पर एक डीईबी पैकेज डाउनलोड किया है और यह जानना चाहते हैं कि पैकेज के साथ कौन सी निर्भरताएं स्थापित की जाएंगी, तो आप -I का उपयोग कर सकते हैं। (कैपिटलाइज़्ड i, लोअरकेस L नहीं) या --info आदेश के साथ झंडा।
sudo dpkg -I /path/to/package.deb
sudo dpkg --info /path/to/package.deb
...जहां /path/to/package.deb DEB फ़ाइल का पूर्ण या सापेक्ष पथ है।
आउटपुट पैकेज के आकार, स्रोत और अन्य उपयोगी जानकारी के साथ-साथ निर्भरताओं की सूची प्रदर्शित करेगा।
एक स्थापित पैकेज के लिए निर्भरताओं की सूची प्राप्त करने के लिए, -s . का उपयोग करें डीपीकेजी के साथ झंडा। उदाहरण के लिए:
sudo dpkg -s firefox
आउटपुट:
apt-rdepends का उपयोग करना
अधिक विस्तृत आउटपुट प्राप्त करने के लिए, आप उपयुक्त-rनिर्भरता उपयोगिता का उपयोग कर सकते हैं। चूंकि यह अधिकांश लिनक्स वितरणों पर पूर्वस्थापित नहीं होता है, इसलिए आपको एपीटी का उपयोग करके इसे मैन्युअल रूप से उबंटू पर स्थापित करना होगा।
sudo apt install apt-rdepends
पैकेज के लिए डिपेंडेंसी ट्री प्राप्त करने के लिए निम्न कमांड फॉर्मेट का उपयोग करें:
apt-rdepends packagename
उदाहरण के लिए:
apt-rdepends vlc
आउटपुट:
उत्पन्न आउटपुट आम तौर पर तब तक लंबा होता है जब apt-rनिर्भर निर्भरता का एक पूर्ण पदानुक्रमित पेड़ प्रदर्शित करता है, जिसका अर्थ है कि आपको निर्भरता की निर्भरताओं की सूची भी मिलती है।
आप उन पैकेजों की सूची भी प्राप्त कर सकते हैं जो किसी विशेष पैकेज पर निर्भर करते हैं। उदाहरण के लिए, यह जांचने के लिए कि किन पैकेजों को libc की आवश्यकता है एक निर्भरता के रूप में:
apt-rdepends -r libc
आउटपुट:
रिवर्स-डिपेंडेंट यूटिलिटी
हालांकि रिवर्स डिपेंडेंसी फीचर (-r फ्लैग) apt-rdepends अपेक्षा से बेहतर काम करता है, एक और उपयोगिता है जिसका उपयोग आप किसी पैकेज की रिवर्स निर्भरता निकालने के लिए कर सकते हैं। रिवर्स-डिपेंडेंट कमांड ubuntu-dev-tools . का एक हिस्सा है पैकेज, और इसका उपयोग करके डाउनलोड किया जा सकता है:
sudo apt install ubuntu-dev-tools
कमांड का डिफ़ॉल्ट सिंटैक्स है:
reverse-depends options packagename
...जहां विकल्प वे झंडे हैं जिनका उपयोग आप कमांड और packagename . के साथ कर सकते हैं उस पैकेज का नाम है जिसके लिए आप निर्भरताओं को रिवर्स चेक करना चाहते हैं।
आप आउटपुट को संशोधित करने के लिए उपरोक्त कमांड में विभिन्न झंडे भी जोड़ सकते हैं। यहां सबसे उपयोगी विकल्पों की सूची दी गई है:
- -R :केवल प्रत्यक्ष निर्भरताओं की सूची बनाएं (कोई सुझाया या अनुशंसित पैकेज नहीं)
- -s :सुझाए गए पैकेज शामिल करें
- -l :आउटपुट को एक क्लीनर प्रारूप में प्रस्तुत करें, जो स्क्रिप्ट में उपयोग के लिए उपयुक्त है
यदि आप समझ नहीं पा रहे हैं कि टूल का उपयोग कैसे करें और कमांड-लाइन सहायता की आवश्यकता है, तो --help का उपयोग करें या -h झंडा।
reverse-depends -h
reverse-depends --help
सिम्युलेटेड इंस्टॉलेशन/निकालने का उपयोग करके निर्भरता सूची प्राप्त करें
उन लोगों के लिए जो उन सभी निर्भरताओं की एक संक्षिप्त सूची चाहते हैं जो वर्तमान में सिस्टम पर स्थापित नहीं हैं, आप किसी विशेष पैकेज का सिम्युलेटेड इंस्टॉलेशन (या अनइंस्टॉल) चला सकते हैं।
उदाहरण के लिए, PHP पैकेज के लिए आवश्यक निर्भरता की जाँच करने के लिए, निम्न कमांड चलाएँ:
sudo apt install -s php
आउटपुट में "निम्नलिखित अतिरिक्त पैकेज स्थापित किए जाएंगे" खंड होगा। आगे सूचीबद्ध सभी पैकेज नाम निर्भरताएँ हैं जो आपके सिस्टम पर नहीं मिलीं।
यदि आप उबंटू पर पहले से स्थापित पैकेज के लिए निर्भरता की सूची प्राप्त करना चाहते हैं, तो आप यह जांचने के लिए एक नकली अनइंस्टॉल कर सकते हैं कि इसके साथ कौन से अतिरिक्त पैकेज हटा दिए जाएंगे।
sudo apt remove -s packagename
उदाहरण:
sudo apt remove -s rhythmbox
आउटपुट:
Linux पैकेज अन्योन्याश्रित हैं
जैसा कि आप इस गाइड से काफी हद तक निष्कर्ष निकाल सकते हैं, लगभग हर लिनक्स पैकेज दूसरे पैकेज पर निर्भर करता है। इस अवधारणा के पीछे प्राथमिक सिद्धांत यह है कि लिनक्स-आधारित ऑपरेटिंग सिस्टम पर, प्रत्येक पैकेज को एक ही काम करना चाहिए, और इसे अच्छी तरह से करना चाहिए।
यदि ऑडियो सेवाओं के प्रबंधन के लिए एक पैकेज विकसित किया गया है, तो अन्य प्रोग्राम केवल उक्त पैकेज को उनकी निर्भरता के रूप में सूचीबद्ध करेंगे, और उनकी ऑडियो आवश्यकताओं को पूरा करने के लिए इसका उपयोग करेंगे।
इसके अलावा, यदि कई एप्लिकेशन एक ही पैकेज की मांग करते हैं, तो यह सिस्टम पर केवल एक बार स्थापित होता है, डेटा अतिरेक को रोकता है और डिस्क पर भंडारण स्थान की बचत करता है। आप एपीटी का उपयोग करके अपने सिस्टम पर वर्तमान में स्थापित सभी संकुलों की सूची भी प्राप्त कर सकते हैं।