क्या स्रोत से संकलन करना या एक .deb पैकेज से स्थापित करना बेहतर है?


18

कभी-कभी, जब इंटरनेट से सॉफ़्टवेयर डाउनलोड करते हैं, तो मुझे पता चलता है कि मेरे डेबियन / उबंटू के लिए एक .deb पैकेज तैयार है और एक टारबॉल भी संकलित किया जाना है। शुरुआत में मैं बस इसकी स्थापना में आसानी के लिए पैकेज का उपयोग करूंगा, और संकलन करने का प्रयास भी नहीं करूंगा। यहां तक ​​कि इसकी आवाज ने मुझे थोड़ा डरा दिया। आजकल, हालांकि, जब मेरे पास विकल्प होता है तो मैं कभी-कभी खुद को दुविधा में पाता हूं: .deb पैकेज की तुलना में स्रोत से संकलन करने के लिए एक अलोकिक लाभ है? मुझे उम्मीद है कि यहां पता चलेगा, धन्यवाद।

जवाबों:


24

स्रोत से संकलित करने का लाभ यह है कि आप कुछ झंडे / विकल्पों के साथ संकुल संकलित कर सकते हैं जो स्टॉक-स्टैंडर्ड उबंटू संकुल में अनुपलब्ध / अक्षम हो सकते हैं। साथ ही, एक ही प्रोग्राम के कई संस्करणों को स्थापित करना आसान बनाता है। इसके अलावा, आप एक पैकेज का एक सटीक संस्करण चुन सकते हैं जो पहले से ही हटाया जा सकता है या उबंटू रिपॉजिटरी में मौजूद नहीं है (उदाहरण: मेरे पास मेरे / ऑप्ट / निर्देशिका में पायथन 2.4.x के कई संस्करण हैं क्योंकि मुझे कुछ पुराने चलाने की आवश्यकता है सॉफ्टवेयर)।

स्रोत से संकलित करने का नुकसान यह है कि जब तक आप एक .deb का निर्माण नहीं करते हैं और तब इसे स्थापित करते हैं, तब सामान्य "//configure; Make; sudo make install "प्रक्रिया उबंटू के पैकेज मैनेजर को आपके द्वारा किए जा रहे परिवर्तनों से पूरी तरह से अनजान रखती है, इसलिए आप मैन्युअल रूप से संकलित सॉफ़्टवेयर के लिए कोई भी अपडेट नहीं जा रहा है; और यह संभव है कि पैकेज प्रबंधक बाद में आपके पैकेज को ओवरराइड / ब्रेक कर देगा यदि आप इसे अलग स्थान पर स्थापित करने के लिए सावधान नहीं हैं।

संक्षेप में: हमेशा मानक उबंटू रिपॉजिटरी से स्थापित करने पर विचार करें, अगले में .deb स्थापित करने पर विचार करें; केवल स्रोतों से संकलन करें यदि आप जानते हैं कि आपको वास्तव में ऐसा करने की आवश्यकता क्यों है।


मैंने यह भी पढ़ा है कि पैकेज का प्रदर्शन अलग हो सकता है, जब इसे संकलित किया जाता है, तो वर्तमान कर्नेल के साथ बेहतर संगतता। व्यक्तिगत रूप से इसे बेंचमार्क नहीं किया।
फेडिर RYKHTIK

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

1
ध्यान दें कि मेक इनस्टॉल के स्थान पर चेक-इंस्टॉलेशन का उपयोग करने से उल्लेखित नुकसान बहुत कम हो जाते हैं। सहायता देखें ।ubuntu.com
community/

1
नाइटपैकिंग के लिए क्षमा करें, @EliahKagan, लेकिन, जब virtualenv कमाल का है, तो यह अलग-अलग कामों के साथ कई पायथन वातावरण को बनाए रखने के लिए अधिक है। यदि आप पायथन का एक विशिष्ट संस्करण चाहते हैं , तो शायद विशिष्ट सेटिंग्स के साथ संकलित किया गया है - आपको अभी भी वास्तविक बाइनरी स्थापित करने की आवश्यकता होगी - या तो एक .deb से या खरोंच से संकलित।
सर्गेई

@ सेरी यू आर राइट। (और मैंने कुछ भी नहीं देखा है जिसे आपने नाइटपिकिंग के रूप में कहा है - अगर कुछ भी मुझे अपनी गलत और भ्रामक टिप्पणी के लिए माफी मांगनी चाहिए!) जैसा कि मैं समझता हूं कि यह पैकेज प्रबंधक जैसे condaस्वचालित रूप से आभासी वातावरण बना देगा और उनके लिए पायथन की विभिन्न स्थापनाएं स्थापित करेगा ; प्रति-प्रोजेक्ट संस्करण बनाना और बनाए रखना। लेकिन जैसा कि आप कहते हैं कि virtualenv खुद ऐसा नहीं करेगा।
एलियाह कगन

1

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


0

.Deb को स्थापित करना निश्चित रूप से बहुत आसान है, हालांकि यदि आप कर सकते हैं, तो सबसे अच्छा शर्त यह है कि आप इसे रेपो या पीपा में खोज सकें, ताकि आपको अपडेट प्रदान किया जा सके।

जब तक आप इसे पहले बदलने की योजना नहीं बनाते हैं, तब तक इसे स्वयं संकलित करने का कोई वास्तविक लाभ नहीं है। यदि आप बस के रूप में सॉफ्टवेयर चाहते हैं, तो .deb स्थापित करें

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