स्रोत से इंस्टॉल किए गए सॉफ़्टवेयर का प्रबंधन कैसे करें?


14

समय-समय पर, हमें विभिन्न कारणों से स्रोत से कुछ स्थापित करना पड़ सकता है। हालांकि यह काफी मानक है कि उपयुक्त निर्भरता वाले सॉफ़्टवेयर को कैसे स्थापित किया जाए, यह मेरे लिए स्पष्ट नहीं है कि भविष्य की सुविधा के लिए ऐसी स्थापना का प्रबंधन कैसे करें।

अधिक विशेष रूप से:

  1. हम एक आसान और स्वच्छ अनइंस्टॉल सुनिश्चित करने के लिए क्या कर सकते हैं (उन निर्भरता सहित जो स्रोत से पहले स्थापित सॉफ़्टवेयर के लिए और अभी स्थापित हैं)?

  2. हम एक ही सॉफ्टवेयर के आसान और साफ-सुथरे उन्नयन को सुनिश्चित करने के लिए क्या कर सकते हैं, जो कि संभवत: फिर से स्रोत से स्थापित किया जाएगा?

  3. यदि कोई डिफ़ॉल्ट पैकेज (apt-get का उपयोग करके) और साथ ही पैकेज का नया संस्करण (स्रोत से स्थापित) हो तो हम संभावित संघर्ष को कम करने के लिए क्या कर सकते हैं?

जवाबों:


8

उपयोग करने checkinstall make installसे एक अस्थायी पैकेज बनेगा और इसे स्थापित किया जाएगा। इसका मतलब यह पैकेज मैनेजर में दर्ज है और इसे अनइंस्टॉल किया जा सकता है।


7

सबसे अच्छी बात यह है कि नए संस्करणों के डेबियन पैकेज को खुद बनाना होगा। dpkgऔर aptउपकरण उन तीन चीजों को करते हैं जिनका आप उल्लेख करते हैं और उस उद्देश्य के लिए हैं। पहिया को सुदृढ़ करने के बजाय उनका उपयोग करें। पैकेजिंग पर बहुत सारे गाइड उपलब्ध हैं। यदि सॉफ़्टवेयर पहले से ही रिपॉजिटरी में मौजूद है, तो आप संभवतः स्रोत पैकेज ( apt-get src) प्राप्त कर सकते हैं, जिसका उपयोग आप अपने स्वयं के पैकेज को शुरू करने और किक करने के लिए कर सकते हैं।

यह उत्तर /ubuntu//a/485230/158442 सामान्य दिशानिर्देश के रूप में उपयोगी हो सकता है।

जबकि checkinstallएक त्वरित और गंदे समाधान के लिए महान है, दीर्घकालिक आपको उचित पैकेजिंग का उपयोग करना चाहिए।


सुझाव के लिए धन्यवाद। जब आपने कहा 'सॉफ़्टवेयर पहले से ही रिपॉजिटरी में मौजूद है', तो मेरा मानना ​​है कि आप उबंटू द्वारा बनाए गए आधिकारिक रिपॉजिटरी का मतलब है। यदि हां, तो कई मामलों में ये रिपॉजिटरी पुराने उबंटू रिलीज पर विशेष रूप से नए संस्करण प्रदान नहीं करते हैं। तो apt-get srcशायद ऐसे मामलों में मदद नहीं कर सकता।
आसमानी

@skyork शायद वे नहीं करते। लेकिन आप अध्ययन करने के लिए पुराने संस्करणों के पैकेज का उपयोग कर सकते हैं। कुछ कस्टमाइज़ेशन हो सकते हैं, जिन्हें पैकर्स ने किया था, कुछ कस्टम रखरखाव स्क्रिप्ट। ऐसा कोई कारण नहीं है कि आपको उस सभी को अनदेखा करना चाहिए और खरोंच से शुरू करना चाहिए। पहिया को फिर से शुरू करना यहां एक विषय लगता है।
मुरु

4

सबसे पहले, बहुत कुछ इस बात पर निर्भर करता है कि आप अपने स्रोत कोड का प्रबंधन कैसे करते हैं। मैं एक निर्देशिका बनाता हूं ~/sourcesऔर प्रत्येक कार्यक्रम को उपनिर्देशिकाओं में डाल देता हूं , जबकि अन्य हर कार्यक्रम के लिए एक नई निर्देशिका बनाएंगे।

इसी तरह मेरे जैसे कुछ, हर नए संस्करण के लिए एक नई उप-उप-निर्देशिका बनाते हैं, और पुराने संस्करणों को तभी निकालते हैं जब यह सुनिश्चित हो जाता है कि नए संस्करण में कोई महत्वपूर्ण बग नहीं हैं जो मेरे काम को रोक देंगे।

ऐसा करने का कोई एक तरीका नहीं है, लेकिन जो भी आप चुनते हैं, एक ऐसा तरीका चुनें जो आपके लिए प्रबंधन करना सबसे आसान होगा

  1. साफ स्थापना रद्द करें

    • मैं एक rem_dep.shस्क्रिप्ट बनाने का सुझाव दूंगा जो इस तरह दिखेगी।

      #! /bin/bash
      sudo apt-get remove dep1 dep2 ... depn
      

      कहाँ dep1, dep2, depnनिर्भरताएँ हैं

  2. स्वच्छ और आसान उन्नयन

    • आप की तरह एक स्वचालित वर्ज़निंग सिस्टम से स्रोत कोड प्राप्त करता है, तो gitया bazaarया यदि लिंक अपेक्षित हैं आप एक खोल स्क्रिप्ट जो होगा बना सकते हैं

      #1 make a backup of earlier version
      #2 get new source
      #3 configure, build/make the source
      #5 if make went correctly, remove earlier version.
      #6 make install new version, update dependencies if required.
      
    • अन्य मामलों में भी, आप इस तरह की स्क्रिप्ट को कुछ हद तक मैनुअल काम के साथ बना सकते हैं।

  3. विरोधाभास प्रबंधन

    • सबसे अच्छा तरीका है कि --prefixसॉफ्टवेयर्स स्थापित करते समय विकल्प का उपयोग करें और निर्भरताएं हैं।
    • अन्य महत्वपूर्ण बात यह है कि अपने सिस्टम को अपडेट रखें ताकि टकराव को कम किया जा सके।

नोट: यदि आप पाते हैं कि आप अपने आप से अधिक सॉफ्टवेयर संकलित करना चाहिए ( max_limitअपने लिए सेट , जैसे 5 या 10 या 100) यह सबसे अच्छा है कि आप उबंटू छोड़ दें और आर्क लिनक्स पर जाएं।


3

निर्भरता बनाएँ:

  • AFAIK उन्हें मैन्युअल रूप से दर्ज किया जाना चाहिए। मैन्युअल रूप से स्थापित निर्भरता की सूची रखने के लिए आप README जैसी फाइल बना सकते हैं।

  • यदि उस सॉफ्टवेयर में पहले से ही एक द्विआधारी उबंटू या पीपीए रिपॉजिटरी है। ट्रैकिंग निर्भरताएँ, जबकि स्थापना आसान होनी चाहिए:

    sudo apt-get build-dep target_package
    

साफ स्थापना रद्द करें:

कॉन्फ़िगर और स्थापित स्रोत फ़ोल्डर रखें । यदि आप स्थापित निर्भरता की फ़ाइल के साथ विशिष्ट फ़ोल्डर में सभी स्रोतों को इकट्ठा करते हैं तो बेहतर है।

स्वच्छ उन्नयन और स्थापित फ़ाइलें अलगाव:

उन्हें विशिष्ट --prefix(अधिमानतः --prefix=/opt/software_name-version/) में स्थापित करें ।

यह कई समस्याओं को हल करेगा: भंडार से एक के साथ समवर्ती संस्करण; स्वच्छ उन्नयन; मामले स्रोत में गंदे स्थापना रद्द करने के लिए आसान हटा दिया गया था।

अधिक परिष्कृत या सबसे अच्छा तरीका है, @muru उत्तर के रूप में, एक डेबियन पैकेज बनाएँ (उबंटू / पीपीए उपयोगिता में उपलब्ध पैकेजों के लिए)

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