आपके द्वारा उपयोग किए जाने वाले पैकेज मैनेजर के बावजूद, लिनक्स पर प्रोग्राम स्थापित करने के दो व्यापक तरीके हैं। आप या तो पूर्व-निर्मित पैकेज का उपयोग करते हैं, या आप प्रोग्राम को स्वयं संकलित करते हैं। इन दिनों, पूर्व आमतौर पर डिफ़ॉल्ट रूप से जीत जाता है, लेकिन ऐसे समय होते हैं जब आप स्रोत कोड से संकलन करने पर विचार कर सकते हैं।
बाइनरी पैकेज क्या हैं?
लिनक्स पर प्रोग्राम इंस्टॉल करना आमतौर पर विंडोज पर सॉफ्टवेयर इंस्टॉल करने के पारंपरिक तरीके से काफी अलग होता है। किसी विक्रेता की वेबसाइट से इंस्टॉलर डाउनलोड करने के बजाय, फ़ाइलें प्रोग्रामों के संग्रह से आती हैं जो आमतौर पर आपके Linux वितरण के अनुरूप होती हैं। आप इस रिपॉजिटरी को Linux पैकेज मैनेजर या Linux ऐप स्टोर का उपयोग करके एक्सेस कर सकते हैं।
इन रिपॉजिटरी में प्रोग्राम बनाने वाली फाइलें आर्काइव फॉर्मेट में आती हैं। यह आसान पहुंच और वितरण के लिए सब कुछ एक फ़ाइल में बंडल करता है। उदाहरण के लिए, डेबियन प्रोग्राम को स्टोर और वितरित करने के लिए डीईबी प्रारूप का उपयोग करता है। इन बंडलों को बाइनरी पैकेज . कहा जाता है ।
इन फ़ाइलों को निकालने और उन्हें अपने कंप्यूटर पर स्थापित करने के लिए आपको एक विशेष कार्यक्रम की आवश्यकता होती है, आमतौर पर आपके पैकेज मैनेजर या ऐप स्टोर पर। ये उपकरण अन्य उपयोगी कार्य भी करते हैं, जैसे आपके द्वारा इंस्टॉल की गई फ़ाइलों का ट्रैक रखना, और सॉफ़्टवेयर अपडेट प्रबंधित करना।
पैकेज कहां से आते हैं?
सभी सॉफ़्टवेयर में टेक्स्ट की पंक्तियाँ होती हैं जिन्हें स्रोत कोड के रूप में जाना जाता है, जो विशिष्ट प्रोग्रामिंग भाषाओं, जैसे C या C++ में लिखी जाती हैं। आप आम तौर पर इस स्रोत कोड को एक संग्रह में बंडल नहीं कर सकते हैं और इसे एक पैकेज कह सकते हैं। इन पंक्तियों को उस भाषा में अनुवादित करने की आवश्यकता है जिसे आपका कंप्यूटर समझ सकता है और निष्पादित कर सकता है।
इस प्रक्रिया को संकलन कहा जाता है, अंतिम परिणाम बायनेरिज़ बनाता है जिसे आपका कंप्यूटर चला सकता है। पैकेज और सॉफ़्टवेयर के बीच का अंतर यह है कि सॉफ़्टवेयर बायनेरिज़ को एक पैकेज के अंदर अन्य चीज़ों जैसे कॉन्फ़िगरेशन फ़ाइलों के साथ एक साथ संग्रहीत किया जाता है।
"सोर्स से" इंस्टॉल करना क्या है?
किसी प्रोग्राम को "सोर्स से" इंस्टॉल करने का मतलब पैकेज मैनेजर का उपयोग किए बिना प्रोग्राम इंस्टॉल करना है। आप स्रोत कोड संकलित करते हैं और इसके बजाय बायनेरिज़ को अपने कंप्यूटर पर कॉपी करते हैं।
अधिकांश समय, आप GitHub, GitLab, या Bitbucket जैसी होस्टिंग सेवाओं से प्रोजेक्ट का स्रोत कोड डाउनलोड कर सकते हैं। बड़े प्रोग्राम व्यक्तिगत वेबसाइट पर स्रोत कोड भी होस्ट कर सकते हैं। कोड को आमतौर पर एक संग्रह प्रारूप में ज़िप किया जाएगा (जिसे स्रोत पैकेज . के रूप में भी जाना जाता है) )।
उपकरणों का एक विशेष सेट निर्माण प्रक्रिया को स्वचालित करने में मदद करता है। Linux डेस्कटॉप पर, यह अक्सर मेक . नामक कमांड लाइन प्रोग्राम के रूप में आता है . विभिन्न भाषाओं में लिखे गए सोर्स कोड को बायनेरिज़ में बदलने के लिए विशिष्ट कंपाइलर और कमांड की आवश्यकता होती है। मेक प्रोग्राम इस प्रक्रिया को स्वचालित करता है।
इस स्वचालन के काम करने के लिए, प्रोग्राम एक मेकफ़ाइल . के साथ मेक प्रदान करते हैं यह बताता है कि क्या करना है और संकलित करना है। इन दिनों, यह आमतौर पर सीएमके जैसे विशेष सॉफ्टवेयर द्वारा स्वचालित रूप से उत्पन्न होता है। यह वह जगह है जहाँ आप आते हैं। यहाँ से, आप यह निर्दिष्ट कर सकते हैं कि आप अपने सॉफ़्टवेयर में कौन-सी सुविधाएँ संकलित करना चाहते हैं।
बिल्डिंग "सोर्स से" उदाहरण
उदाहरण के लिए, नीचे दिया गया कमांड CMake का उपयोग करके Calligra Office Suite के लिए एक कॉन्फ़िगरेशन फ़ाइल बनाता है। बनाई गई फ़ाइल मेक प्रोग्राम को केवल कैलिग्रा के राइटर घटक को संकलित करने के लिए कहती है।
cmake -DPRODUCTSET=WORDS -DCMAKE_INSTALL_PREFIX=$HOME/kde/inst5 $HOME/kde/src/calligra
ऐसा करने के बाद, एक व्यक्ति को केवल अपने कंप्यूटर पर परिणामों को संकलित और कॉपी करने के लिए मेक टूल चलाना होता है। यह निम्नलिखित तरीके से किया जाता है:
make
make install
जबकि प्रोग्रामों को संकलित करने के लिए यह सामान्य पैटर्न है, स्रोत पैकेज स्थापित करने के कई अन्य तरीके हैं। उदाहरण के लिए, जेंटू लिनक्स में इसे संभालने का एक अंतर्निहित तरीका है, जिससे प्रक्रिया बहुत तेज और आसान हो जाती है। लेकिन बाइनरी पैकेज बनाने के लिए उपरोक्त आदेशों की तुलना में कुछ और कदम उठाने होंगे।
बाइनरी पैकेज के उपयोग के लाभ
यदि आप Linux का उपयोग कर रहे हैं, तो किसी और ने आपके द्वारा इंस्टॉल किए गए सॉफ़्टवेयर को पहले से संकलित कर लिया है। यह स्रोत पैकेज के उपयोग की तुलना में बहुत अधिक सामान्य हो गया है। लेकिन क्यों?
बाइनरी संस्करण प्रबंधित करने में आसान होते हैं
बाइनरी पैकेज में सिर्फ संकलित इंस्टॉलेशन फाइलों की तुलना में बहुत अधिक है। वे ऐसी जानकारी भी संग्रहीत करते हैं जिससे आपके पैकेज प्रबंधक के लिए आपके सभी कार्यक्रमों पर नज़र रखना आसान हो जाता है। उदाहरण के लिए, डीईबी फाइलें (डेबियन और डेबियन डेरिवेटिव के लिए पैकेज प्रारूप) में भी महत्वपूर्ण जानकारी होती है जैसे कि प्रोग्राम को चलाने के लिए कौन से अन्य सॉफ्टवेयर की जरूरत है, और इसका वर्तमान संस्करण।
इससे संकुल को संस्थापित करना बहुत आसान हो जाता है, क्योंकि आपको इस बारे में चिंता करने की आवश्यकता नहीं है कि प्रोग्राम को सफलतापूर्वक चलाने के लिए आपको किन अन्य फाइलों की आवश्यकता है। आपका पैकेज प्रबंधक उस जानकारी को पैकेज से ही पढ़ सकता है और सभी आवश्यक निर्भरताओं को स्वचालित रूप से डाउनलोड कर सकता है।
स्रोत से प्रोग्राम इंस्टॉल करते समय, जब तक कि आप कोड को स्वयं के बाइनरी पैकेज में संकलित नहीं करते, आप उस सॉफ्टवेयर के प्रबंधन का प्रभारी होगा। आपको यह ध्यान में रखना होगा कि इसे काम करने के लिए आपको किन अन्य कार्यक्रमों की आवश्यकता है, और उन्हें स्वयं स्थापित करें।
बाइनरी संस्करणों में बेहतर स्थिरता है
जो लोग आपके पैकेज मैनेजर के लिए रिपॉजिटरी बनाए रखते हैं, वे समस्याओं के लिए बायनेरिज़ का परीक्षण करते हैं और जो दिखाई देते हैं उन्हें ठीक करने की पूरी कोशिश करते हैं। इससे कार्यक्रमों की स्थिरता में सुधार हो सकता है, कुछ ऐसा जो स्रोत से स्थापित करने वाला व्यक्ति चूक सकता है।
प्लस पैकेज को आमतौर पर नियमों के सख्त सेट का पालन करना चाहिए ताकि यह सुनिश्चित हो सके कि वे आपके सिस्टम पर चलेंगे। उदाहरण के लिए, डेबियन और उबंटू दोनों के पास नीति नियमावली है, जैसा कि कई अन्य लिनक्स वितरण करते हैं।
कुछ प्रोग्राम चलाने के लिए समान सॉफ़्टवेयर निर्भरता के विभिन्न संस्करणों पर भी निर्भर करते हैं। पैकेज रिपॉजिटरी इन विरोधों को हल करने की पूरी कोशिश करते हैं ताकि आपको इसके बारे में चिंता करने की आवश्यकता न हो।
स्रोत पैकेज संकलित करने के लाभ
स्रोत से प्रोग्राम इंस्टॉल करना ऐसा कुछ नहीं है जो हर किसी को करने की ज़रूरत है, क्योंकि यदि आप बाइनरी पैकेज के साथ चिपके रहते हैं तो अपने पीसी को बनाए रखना आम तौर पर आसान होता है। फिर भी, प्रोग्रामों को स्थापित करने के इस थोड़े अधिक सम्मिलित तरीके का उपयोग करने के कुछ फायदे हैं।
सोर्स कोड नवीनतम सॉफ़्टवेयर ऑफ़र करता है
कार्यक्रमों को अधिक विश्वसनीय बनाने का एक नुकसान यह है कि इसे सुधारने और ठीक करने में समय लगता है। परिणामस्वरूप, यह आपको सॉफ़्टवेयर के पुराने संस्करणों का उपयोग करने के लिए प्रेरित कर सकता है। जो लोग नवीनतम और महानतम चाहते हैं, वे इसके बदले थोड़ी अस्थिरता भी पसंद कर सकते हैं।
जबकि लिनक्स ऑपरेटिंग सिस्टम हैं जो प्रोग्रामों को संकलित किए बिना इस आवश्यकता को पूरा करते हैं, उनमें कुछ कमियां हैं। उदाहरण के लिए, सॉफ़्टवेयर जो सेट पैकेज संस्करणों को बार-बार रिलीज़ नहीं करता है, स्रोत से स्थापित करने की तुलना में किसी रिपॉजिटरी में अद्यतित रहना कठिन होता है।
ऐसा इसलिए है क्योंकि बाइनरी पैकेज आमतौर पर प्रोग्राम के आधिकारिक रिलीज़ से बनाए जाते हैं। जैसे, इन संस्करणों के बीच परिवर्तनों को आमतौर पर ध्यान में नहीं रखा जाता है। स्रोत से अपना स्वयं का सॉफ़्टवेयर संकलित करके, आप इन परिवर्तनों से तुरंत लाभ उठा सकते हैं।
यह भी संभव है कि आपके Linux ऑपरेटिंग सिस्टम में वह सॉफ़्टवेयर न हो जो आप अपने लिए पहले से तैयार करना चाहते हैं। अगर ऐसा है, तो इसे स्रोत से इंस्टॉल करना ही आपका एकमात्र विकल्प है।
आप चुन सकते हैं और चुन सकते हैं
स्रोत पैकेज का उपयोग करने का एक अन्य लाभ यह है कि आप अपने द्वारा स्थापित प्रोग्राम पर अधिक नियंत्रण प्राप्त करते हैं। बाइनरी रिपॉजिटरी से इंस्टॉल करते समय, आप अपने पैकेज को कस्टमाइज़ करने के तरीकों से प्रतिबंधित होते हैं।
उदाहरण के लिए, कमांड-लाइन-आधारित ऑडियो और वीडियो कनवर्टर FFmpeg को देखें। डिफ़ॉल्ट रूप से, यह बड़ी संख्या में सुविधाओं के साथ आता है, जिनमें से कुछ को आप कभी छू भी नहीं सकते। उदाहरण के लिए, जैक ऑडियो समर्थन FFmpeg में उपलब्ध है, भले ही यह सॉफ़्टवेयर आमतौर पर केवल उत्पादन वातावरण में उपयोग किया जाता है।
FFmpeg को संकलित करने से आप उन चीजों को हटा सकते हैं जो आप नहीं चाहते हैं, इसे हल्का छोड़कर और आपकी आवश्यकताओं के अनुरूप बनाया गया है। और यही बात अन्य हैवीवेट कार्यक्रमों पर भी लागू होती है।
जब संसाधन कम होते हैं, तो सुविधाओं को हटाना लोड को हल्का करने का एक शानदार तरीका हो सकता है। इसमें कोई आश्चर्य की बात नहीं है कि कई लो-एंड कंप्यूटरों पर पाया जाने वाला क्रोम ओएस, जेंटू लिनक्स पर आधारित है। जेंटू, स्रोत-आधारित होने के कारण, अपने बहुत से सॉफ़्टवेयर को संकलित करता है, संभावित रूप से इन प्रणालियों को बहुत हल्का चलाता है।
दोनों के साथ क्यों नहीं इंस्टॉल करें?
जबकि आप शायद दैनिक आधार पर पैकेज संकलित नहीं करना चाहेंगे, यह ध्यान में रखना उपयोगी है। उस ने कहा, स्नैप स्टोर और फ्लैथब जैसी साइटों से उपलब्ध नए सार्वभौमिक पैकेज प्रारूपों के साथ, आपको नवीनतम सॉफ़्टवेयर प्राप्त करने के लिए स्रोत से निर्माण करने की आवश्यकता कम है।