नवीनतम पैकेज के साथ मेरे डेबियन सिस्टम को कैसे रखें?


9

अधिकांश "सॉफ़्टवेयर" जो मैं अपने सर्वर पर स्थापित करता हूं, उन्हें नवीनतम रिलीज़ (जावा, टॉमकैट, मायएसक्यूएल-क्लस्टर) होना चाहिए। इसलिए मेरे पास कभी भी भाग्य नहीं है कि पहले से निर्मित डेबियन पैकेज (वितरण में) उपलब्ध हैं। इसलिए सभी सॉफ्टवेयर प्रोजेक्ट-वेबपेज से डाउनलोड किए गए और स्रोत से बनाए गए हैं।

अब मेरा सवाल है, मेरे डेबियन सिस्टम पर उन्हें स्थापित करने का सही तरीका क्या है?

मेरी मुख्य समस्या है, जब उन्हें सीधे स्रोत से स्थापित किया जाता है, तो उन्हें पैकेज प्रबंधन (योग्यता के साथ) में शामिल नहीं किया जाता है। लगता है कि स्थापना रद्द करने का वास्तव में उपयोग करने का सुझाव नहीं दिया गया है और इक्विटी में भी कमियां हैं। Dh_make और dpkg-buildpackage के साथ अपने स्वयं के पैकेज बनाकर इसे संभालने का एकमात्र सही तरीका है?

यदि आपको हमेशा नवीनतम संस्करण की आवश्यकता होती है तो आप क्या कर रहे हैं?

जवाबों:


10

अधिक हाल के पैकेजों को चाहना किसी भी OS पर एक सामान्य समस्या है। डेबियन के रिलीज़ चक्र ने हाल के वर्षों में औसतन 2 साल का औसत किया है, इसलिए इस चक्र के अंत की ओर, यह शायद अधिक दबाव वाला मुद्दा है। इसे कम करने का एक तरीका यह है कि स्थिर रिलीज चक्र के अंत की ओर परीक्षण किया जाए, जब अगला संस्करण लगभग स्थिर हो। यह इस सवाल से स्पष्ट नहीं है कि क्या यह आम तौर पर परीक्षण और / या अस्थिर के बारे में और अधिक स्थिर होने के बारे में बात कर रहा है। भले ही, सबसे हाल का संस्करण होने पर भी एक मुद्दा हो सकता है अगर कोई अस्थिर है, तो सबसे हाल के संस्करण को अभी तक पैक नहीं किया जा सकता है। डेबियन डेवलपर्स / पैकर्स ग्रामीण स्वयंसेवक हैं, इसलिए वे ऊब सकते हैं, या अन्य चीजों के साथ व्यस्त हो सकते हैं, जिसके परिणामस्वरूप पैकेज कम हो जाता है।

सादगी और संक्षिप्तता के लिए मैं इस बात को मानता हूं कि इस योजना के तहत एक पैकेज को स्थिर करने के लिए है, लेकिन यह आमतौर पर अधिक लागू होता है। तो, यहाँ है कि मैं क्या करूँ अगर मुझे सॉफ़्टवेयर का अधिक हाल का संस्करण चाहिए जो स्थिर में मौजूद नहीं है, लगभग एक अनुमानित क्रम में।

  1. डेबियन बैकपोर्ट में पैकेज की तलाश करें । कभी-कभी आप एक पैकेज पा सकते हैं जो आपके उद्देश्यों को पूरा करने के लिए हाल ही में पर्याप्त है। हालांकि, यह अक्सर ऐसा होता है कि अस्थिर या प्रयोगात्मक या अपस्ट्रीम में संस्करण की तुलना में ये पैकेज पुराने हैं।

  2. परीक्षण, अस्थिर या प्रायोगिक से सीधे पैकेज को स्थापित करने का प्रयास करें। यदि आप जिस भी संस्करण से इंस्टॉल करने का प्रयास कर रहे हैं, उसमें से स्थिर को ज्यादा मोड़ नहीं दिया गया है, तो यह काम कर सकता है। आपको पता चलेगा कि यदि सिस्टम हाल ही के संस्करण से बुनियादी पैकेजों को स्थापित या अपग्रेड करने का प्रयास करना शुरू कर रहा है तो यह एक बुरा है। मान लीजिए आप अस्थिर से स्थापित करने की कोशिश कर रहे हैं, तो

    apt-get install packagename/unstable
    

    पहली कोशिश है। स्थिर में संस्करणों के साथ, यह अक्सर विफल हो जाएगा, क्योंकि इसे अस्थिर से अन्य पैकेजों की आवश्यकता होती है, और यह झुकाव केवल packagenameअस्थिर में स्थापित होने के लिए पर्याप्त रूप से उच्च की वरीयता को बढ़ाता है। यदि आपको यह समझ में नहीं आता है कि इसका क्या मतलब है, तो चले जाओ और पढ़ें man apt_preferences। अस्थिरता से निर्भरता जोड़ने पर, सुनिश्चित करें कि यह मूल पैकेजों को अपग्रेड करने की कोशिश नहीं कर रहा है। उदाहरण के लिए, यदि यह libc6 या X या KDE या Gnome को अपग्रेड करने का प्रयास करना शुरू कर देता है, तो तुरंत गर्भपात करें। यह आमतौर पर ठीक है अगर यह एक ही स्रोत पैकेज से अन्य पैकेजों को अपग्रेड करने की कोशिश करता है, क्योंकि ये आमतौर पर एक साथ कसकर युग्मित होते हैं। यह देखने के लिए कि बाइनरी पैकेज किस स्रोत पैकेज पर निर्भर करता है, करते हैं

    apt-cache showsrc packagename
    

    चूंकि बहुत सारा सामान GNU C लाइब्रेरी (libc6) पर निर्भर करता है, इसलिए यह एक समस्या हुआ करती थी। अभी हाल ही में, एपीआई स्थिर हो गया है, इसलिए इसे अपग्रेड न करने के साथ दूर होना अब अधिक बार संभव है। यदि कोई पैकेज स्थिर पर अपनी रनटाइम निर्भरता को संतुष्ट करता है, लेकिन फिर भी सही तरीके से काम नहीं करता है, तो बग दर्ज करें। अगर पैकर आपको बताता है कि यह बग नहीं है, तो वे गलत हैं। :-)

  3. पैकेज का परीक्षण, अस्थिर या प्रायोगिक से खुद को बैकपोर्ट करें।

    जैसा कि ऊपर उल्लेख किया गया है, बैकपोर्ट एक विकल्प है, लेकिन अक्सर अस्थिर या प्रयोगात्मक या अपस्ट्रीम में संस्करण की तुलना में ये पैकेज पुराने होते हैं।

    यह अक्सर एक पुनरावर्ती निर्भरता निर्माण पाश प्रकार बात की आवश्यकता हो सकती है। आपको पहले बिल्ड निर्भरता प्राप्त करने की आवश्यकता है

    apt-get build-dep packagename    
    

    यदि यह विफल हो जाता है क्योंकि निर्भरता में से एक हाल ही में पर्याप्त नहीं है, तो आपको पहले उस निर्भरता को वापस करने की आवश्यकता होगी। यह नियंत्रण से बाहर हो सकता है। मैं आमतौर पर छोड़ देता हूं यदि मुझे 2 से अधिक स्तरों की पुनरावृत्ति से निपटना पड़ता है। हालांकि, ध्यान दें कि वास्तविक निर्भरताएं आवश्यक रूप से तंग नहीं होती हैं जैसा कि कहा गया है। एक पुराना संस्करण काम कर सकता है। पैकर एक बिल्ड (या, वास्तव में, रनटाइम) निर्भरता के सबसे पुराने संस्करण को खोजने की कोशिश नहीं करता है जो काम करेगा।

  4. इसी अपस्ट्रीम से संकुल की उपलब्धता की जाँच करें। आदर्श रूप से ये आपके वितरण संस्करण से मेल खाते हैं, लेकिन यदि आवश्यक हो तो आप उनका पुनर्निर्माण भी कर सकते हैं।

  5. परीक्षण / अस्थिर / प्रायोगिक में सबसे हाल के पैकेजों की तुलना में हाल ही में सॉफ़्टवेयर के संस्करण के लिए पैकेज बनाएं। यह अपेक्षाकृत चुनौतीपूर्ण हो सकता है, लेकिन फिर भी कभी-कभी आश्चर्यजनक रूप से उल्लेखनीय है। ध्यान देने वाली पहली बात यह है कि यदि आप पहले से ही डेबियन में पहले से मौजूद पैकेज का अधिक संस्करण तैयार करने की कोशिश कर रहे हैं, तो आप पहले से ही एक बड़े लाभ के साथ शुरू कर सकते हैं, अर्थात् आपके पास काम करने के लिए मौजूदा पैकेजिंग है। बस करो

    apt-get source packagename
    

    और apt-getसंबंधित स्रोत पैकेज डाउनलोड करेगा, जिसमें डेबियन उपनिर्देशिका भी शामिल है, जहाँ पैकेजिंग रहती है। इसके अलावा ध्यान दें कि इन दिनों, यह पैकेजिंग अक्सर कुछ verson कंट्रोल रिपॉजिटरी के अंदर रहती है (git, Debian के साथ लोकप्रिय लगती है) और स्थिर apt (वर्तमान में 0.8.10.3 ) आपको यह बताने में मदद करती है कि यह कहाँ है apt-get source। आपको इस पर गौर करना चाहिए, क्योंकि किसी भी रिलीज़ किए गए पैकेज से मेल खाते हुए पैकर्स में पैकेजिंग के हाल के संस्करण हो सकते हैं। उदाहरण के लिए।

    $ apt-get source mercurial
      Reading package lists... Done
      Building dependency tree       
      Reading state information... Done
      NOTICE: 'mercurial' packaging is maintained in the 'Svn' version control system at:
      svn://svn.debian.org/python-apps/packages/mercurial/trunk
    

    वैकल्पिक रूप से, आप बस उपयोग कर सकते हैं

    apt-cache showsrc mercurial | grep Vcs
    

    भंडार को सूचीबद्ध करने के लिए।

    यदि पैकेज बुरी तरह से पुराना है, तो आपको
    पैकेज में संशोधन करना पड़ सकता है , लागू पैच को ताज़ा कर सकते हैं लेकिन यह अभी भी आमतौर पर एक अच्छा प्रारंभिक
    बिंदु है। डेबियन
    प्रति -डीपी-स्रोत 3.0 (रजाई) प्रारूप में रजाई पर पैकेज प्रबंधन के मानकीकरण की प्रक्रिया में लगता है , ताकि पैच रीफ्रेशिंग में मदद मिले।

    मैं एक वास्तविक जीवन के उदाहरण के साथ समाप्त करता हूं कि कैसे मैंने pgf के डेबियन पैकेज को वापस भेज दिया । 2008 में pgf का अंतिम पैकेज्ड संस्करण 2.00 था और तब से 2.10 जारी किया गया था। पीजीएफ (2.10) के नवीनतम स्थिर संस्करण , और पैच, पीजीएफ: 2.0 डेबियन पैकेजिंग के खिलाफ पैच के साथ मेरे फॉलोअप बग पर चर्चा करें । जैसा कि यह पता चला है, pgf की डेबियन पैकेजिंग बहुत सरल थी, और मुझे इसे काम करने के लिए बस 2.10 पैकेजिंग में एक लाइन बदलनी पड़ी। मैंने सभी लिंटियन शिकायतों को भी समाप्त कर दिया , लेकिन यह सख्ती से वैकल्पिक था।


पहले पैराग्राफ का अंतिम वाक्य भ्रामक हो सकता है। कृपया यह स्पष्ट करें कि आपको समस्या कभी-कभी ही होती है । जिस तरह से आप इसे बनाते हैं ऐसा लगता है कि डीडी आमतौर पर ऐसे ही होते हैं।
tshepang

@ तशपंग: अच्छी बात है। क्या अब यह ठीक है?
फहीम मीठा

हाँ, बहुत बेहतर है।
tshepang

5

आप निश्चित रूप से अपने स्वयं के पैकेज बना सकते हैं, और यह काम करेगा। हालाँकि मैं बैकपार्ट्स का उपयोग करने की सलाह दूंगा यदि आप चाहते हैं कि वहां क्या उपलब्ध है।

बैकस्पोर्ट्स डेबियन बनाए हुए हैं और आपको उनके लिए सुरक्षा अपडेट मिलते हैं।


3

अपने खुद के पैकेज बनाना, जाने का रास्ता (IMHO) है। डेबियन के एक पैकेज के संस्करण की उम्र के आधार पर और जो बदल गया है, यह पैकेज विवरण में स्रोत टैरबॉल के फ़ाइल नाम को बदलने के रूप में आसान हो सकता है और सबसे खराब स्थिति में आप अभी भी इसे अपने संस्करण के लिए टेम्पलेट के रूप में उपयोग कर सकते हैं।


1

यदि आपको हमेशा नवीनतम संस्करण की आवश्यकता होती है तो आप क्या कर रहे हैं?

  1. जैसा कि पहले ही उल्लेख किया गया है , बैकपोर्ट का उपयोग करें।

  2. केवल डेबियन पैकेज का एक छोटा सा उप-भाग बैकपोर्टेड है, इसलिए मेरा सुझाव है कि आप डेबियन परीक्षण का उपयोग करें । यह स्थिरता और पुनरावृत्ति के बीच एक अच्छा संतुलन प्रदान करता है, और एक अर्थ में, रोलिंग डिस्ट्रो की तरह है।

  3. यदि आप थोड़ा अधिक साहसी हैं, तो डेबियन अनस्टेबल का उपयोग करें । यह काफी स्थिर होने का दावा किया जाता है। कुछ लोग यह भी दावा करते हैं कि यह कुछ अन्य डिस्ट्रो के "स्थिर" रिलीज की तुलना में अधिक स्थिर है। वैसे भी, अस्थिर जहां नया पैकेज संस्करण सामान्य रूप से भूमि है। वे आम तौर पर लगभग 10 दिनों के लिए बैठते हैं, परीक्षण के लिए पलायन करने से पहले, परीक्षण के लिए अनुमति देने के लिए।

  4. यहां तक ​​कि इन दोनों का उपयोग करते हुए, आप अभी भी अपने आप को नवीनतम संस्करण नहीं पा सकते हैं। उस मामले में डेबियन एक्सपेरिमेंटल पर एक नजर है । यह सामान्य रूप से उपयोग किया जाता है जब नए पैकेज सामान्य अभिलेखागार (अस्थिर और परीक्षण) के लिए बहुत विघटनकारी होते हैं।

  5. यदि प्रायोगिक में अभी भी नए पर्याप्त सॉफ़्टवेयर संस्करण नहीं हैं, तो Ubuntu के PPA पर नज़र डालें । मैंने उपरोक्त सभी अभिलेखागार की कमी की तुलना में हाल ही में सॉफ्टवेयर संस्करण देखे हैं। हालांकि सावधानी के साथ इसका उपयोग करें, क्योंकि उबंटू डेबियन के साथ 100% संगत नहीं है (लेकिन ज्यादातर मामलों में, कोई समस्या नहीं होनी चाहिए)।

  6. यदि उपरोक्त विफल हो जाता है, तो मुझे लगता है कि केवल अपने स्वयं के पैकेज बनाएं, जैसा कि उल्लेख किया गया है


लोग कहते हैं कि डेबियन की अस्थिरता अन्य डिस्ट्रो के स्थिर की तुलना में अधिक स्थिर है जो सबसे अच्छा मजाक कर रहे हैं। हर दिन अस्थिर परिवर्तन, स्थिर एक निश्चित भंडार है। अस्थिर का मतलब यह नहीं है कि यह दुर्घटनाग्रस्त हो जाएगा, लेकिन इसका मतलब है कि डेवलपर्स पैकेज में बहुत सारे बदलाव करते हैं। स्थिर का मतलब यह जारी किया गया है, और केवल सुरक्षा सुधार जोड़े जाएंगे। मेरे पास कभी भी अस्थिर चलने वाली अजीब दुर्घटनाएँ नहीं थीं। मैंने थू को अपग्रेड करने के बाद पैकेज ब्रेक और निर्भरता की समस्याओं को देखा; खबरदार ;-) यह सब अन्य डिस्ट्रो के "स्थिर" रिलीज की तुलना कैसे करता है, यह मुझसे परे है। इस संदर्भ में कोई "अधिक स्थिर" नहीं है। यह बदलता है या यह नहीं है।
अर्जन ड्रामेन

@ArjanDrieman: वास्तव में वे लोग मजाक नहीं कर रहे हैं, और इस संदर्भ में वे इसे और अधिक क्रैश-प्रूफ होने की बात कर रहे हैं।
tshepang

वे अभी भी सबसे अच्छा मजाक कर रहे हैं। मैंने वास्तव में लोगों को इसका मजाक उड़ाते देखा है। एक सूक्ष्म वितरण लौ ;-) मैंने समय के साथ कुछ डिस्ट्रो का उपयोग किया है, और कभी भी किसी अन्य को चलाने में अजीब दुर्घटना नहीं हुई है, जो लोग कहते हैं कि गंभीरता से इसे अनुसंधान या आँकड़ों के साथ वापस नहीं किया जा सकता है। यह अज्ञानता, घमंड, पक्षपात, कुछ भी हो सकता है ... लेकिन क्या यह मजाक से बेहतर है? क्या आप मुझे बता सकते हैं कि ये रहस्यमय "कुछ" कौन हैं?, इसलिए मैं उनसे उनके शोध के लिए पूछ सकता हूं। "कुछ भी दूर तक जाते हैं" ... वे शब्द हैं। आप उत्तर, तथ्यों या लोकप्रिय राय और अस्पष्ट दावों में क्या पसंद करेंगे?
अर्जन ड्रोमैन

1
@ अर्जन ड्रामेन: मैं वास्तव में अस्थिर मानता हूं, 'somtimes' अपने नाम पर जी सकता है। आप किनारे के करीब जाने के लिए स्थिरता का व्यापार करते हैं, जो कोई भी दावा करता है कि यह मामला सबसे अच्छा नहीं है। कुल मिलाकर यह आश्चर्यजनक रूप से स्थिर है, लेकिन अस्थिरता के लिए स्थिरता सर्वोच्च प्राथमिकता नहीं है। To फिसलन ’शब्द के संबंध में मैं भी आपसे सहमत हूं। यह लगभग यहाँ पर एक रक्षा तंत्र है, क्योंकि किसी भी निरपेक्ष / प्रत्यक्ष बयान पर तुरंत हमला किया जाता है।
जेएम बेकर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.