यह सवाल, और यहां अधिकांश अन्य उत्तर, इस बात की गलतफहमी से उत्पन्न होते हैं कि GNU बिल्ड सिस्टम (उर्फ ऑटोटूलस) का उपयोग करने वाली परियोजनाएं कैसे वितरित की जाती हैं। वास्तव में, ओपी द्वारा उल्लिखित एरलंग एक्सएमपीपी पुस्तकालय के मामले में, डेवलपर्स की ओर से गलतफहमी दिखाई देती है।
सॉफ्टवेयर को सही तरीके से प्राप्त करना
यदि आप सब करना चाहते हैं और जीएनयू ऑटोटूलस के साथ जारी एक परियोजना को संकलित और स्थापित करना चाहते हैं, तो आपको स्रोत नियंत्रण प्रणाली से इसकी जांच नहीं करनी चाहिए । इसके बजाय आपको डेवलपर द्वारा प्रदत्त पैकेज्ड सोर्स रिलीज़ को डाउनलोड करना चाहिए । ये आम तौर पर प्रोजेक्ट की वेबसाइट पर वितरित टारबॉल का रूप लेते हैं। उन परियोजनाओं के लिए जो पूरी तरह से GitHub, Savannah या कुछ इसी तरह की होस्टिंग सेवा पर होस्ट की जाती हैं, ये टारबॉल आमतौर पर "डाउनलोड" या "रिलीज़" लेबल वाले कुछ लिंक के पीछे पाए जाएंगे। आप पैकेज को अनटार करते हैं और मानक ./configure && make && sudo make install
झुकाव के कुछ प्रकारों का उच्चारण करते हैं। बस इतना ही; आपको किसी भी GNU ऑटोटूल का आह्वान करने की आवश्यकता नहीं है, और आपके सिस्टम पर स्थापित GNU ऑटोटूल की भी आवश्यकता नहीं है।
कारण यह है कि आप, उपयोगकर्ता, को ऑटोटूलस-पैकेज्ड प्रोजेक्ट को संकलित करने के लिए GNU ऑटोटूलस की आवश्यकता नहीं है, डेवलपर ने पहले से ही "वितरण टारबॉल" बनाने के लिए विभिन्न ऑटोटूलस कार्यक्रमों का उपयोग किया है, जिसका उपयोग किसी भी सॉफ्टवेयर को बनाने के लिए किया जा सकता है। यूनिक्स जैसी प्रणाली। वितरण टारबॉल में एक अत्यधिक पोर्टेबल configure
स्क्रिप्ट होती है जो बिल्ड वातावरण को स्कैन करती है, निर्भरता की जांच करती है, और Makefile
आपके सिस्टम के लिए एक अनुकूलित निर्माण करती है।
तो आपको ऑटोटूल की आवश्यकता कब होती है?
जीएनयू ऑटोटॉल्स को स्वयं स्थापित करने और इनवॉइस करने का एकमात्र कारण यह है कि यदि आप ऑटोटूलस के साथ निर्मित परियोजना पर विकास कार्य करना चाहते हैं । और तब भी, आपको शायद ऑटोटूलस की ज़रूरत नहीं होगी जब तक कि आप परियोजना की निर्भरता को नहीं बदलते। उस मामले में, आप वास्तव में मूल स्रोत की जाँच करने के लिए, Autotools-विशिष्ट इनपुट फ़ाइलें (करने के लिए उपयुक्त बदलाव करने की आवश्यकता होगी configure.ac
, Makefile.am
आदि) एक नया उत्पन्न करने के लिए उन पर Autotools चलाते हैं, और configure
फ़ाइल। यदि आप संशोधित पैकेज को स्वतंत्र रूप से प्रकाशित करना चाहते हैं, तो आप एक नया वितरण टारबॉल उत्पन्न करने के लिए ऑटोटूलस द्वारा निर्मित मेकफाइल का उपयोग करेंगे, और फिर उस टारबॉल को ऑनलाइन कहीं भी प्रकाशित करेंगे।
समस्या यह है कि कुछ डेवलपर्स अपने स्रोत रिपॉजिटरी को सार्वजनिक रूप से उपलब्ध कराते हैं लेकिन अपने वितरण तारकोल को प्रकाशित करने के लिए उपेक्षा करते हैं (या जहां वे प्रकाशित होते हैं, यह खोजना मुश्किल है)। उदाहरण के लिए, GitHub Releases के रूप में उनके वितरण टारबॉल को प्रकाशित करने के बजाय , Erlang XMPP लाइब्रेरी के GitHub Releases कच्चे स्रोत भंडार के टारबॉल हैं। यह GNU ऑटोटॉल्स के बिना प्रोजेक्ट को संकलित करना असंभव बनाता है, पहले स्थान पर ऑटोटूल का उपयोग करने के पूरे उद्देश्य को पराजित करता है।
टीएल; डीआर सारांश
GNU ऑटोटॉल्स कुछ ऐसी चीजें हैं जो डेवलपर्स उपयोगकर्ताओं के लिए पोर्टेबल स्रोत कोड पैकेज बनाने के लिए उपयोग करते हैं। उपयोगकर्ताओं को इन स्रोत पैकेजों से डाउनलोड और संकलन करना चाहिए, न कि स्रोत नियंत्रण प्रणाली से मूल कोड। यदि डेवलपर्स इन स्रोत पैकेजों को प्रदान नहीं करते हैं, तो वे ऑटोटूलस का सही तरीके से उपयोग नहीं कर रहे हैं, और जब तक वे अपने तरीकों की त्रुटि नहीं देखते हैं, तब तक उन्हें गीले ट्राउट के साथ थप्पड़ मारा जाना चाहिए ।