अपने बिल्ड को कॉन्फ़िगर करना
जब आपके पास स्रोत कोड होता है जिसे चलाने के द्वारा संकलित किया जाता है ./configure
और make, आप इसे स्थापित करने के लिए आमतौर पर उपयोग करेंगे make install(या sudo make install)। यह निर्माण निर्देशिका से फ़ाइलों को स्थापित स्थान में कॉपी करता है। जब आप जो चीज स्थापित कर रहे हैं, वह निष्पादन योग्य कमांड प्रदान करता है, तो उन निष्पादन योग्य को आमतौर पर एक निर्देशिका में कॉपी किया जाता है $PATHजो कि आपके साथ जोड़ने पर विचार करना चाहिए
$PATH।
हालांकि निर्माण और सॉफ़्टवेयर स्थापित चल के रूप में सरल रूप में अक्सर है ./configure, makeकभी-कभी make checkया make test, और उसके बाद make installया sudo make install, आप कभी कभी करने के लिए विकल्पों पास करना चाहते हैं जाएगा configureनिर्माण कॉन्फ़िगर करने के लिए स्क्रिप्ट। विशेष रूप से, जैसा कि pfnuesel कहता है , यह है कि आप कैसे कॉन्फ़िगर करते हैं
जहां सॉफ़्टवेयर स्थापित होने जा रहा है। भले ही make installकदम वास्तव में सॉफ़्टवेयर को स्थापित करता है, लेकिन जिन स्थानों पर सब कुछ स्थापित किया जाएगा वे आमतौर पर ./configureचरण में स्थापित होते हैं
।
इसके लिए सबसे आम विकल्प है --prefix। डिफ़ॉल्ट उपसर्ग, जब आप नहीं बताते configureकि क्या उपयोग करना है, तो आमतौर पर होता है /usr/local। (कभी-कभी, एक प्रोग्राम या लाइब्रेरी का सोर्स कोड कुछ अन्य उपसर्गों में चूक जाता है। सौभाग्य से यह दुर्लभ है।)
इसलिए ./configureआमतौर पर इसके बराबर है ./configure --prefix=/usr/local। अपने घर निर्देशिका में सॉफ़्टवेयर स्थापित करने के लिए, आप उपयोग कर सकते हैं ./configure --prefix=/home/galahad(यदि /home/galahadआपकी घर निर्देशिका है) या --prefix="$HOME"। फिर बेशक आपको अभी भी सॉफ़्टवेयर का निर्माण और संस्थापन करना होगा make। मुझे यह कहना चाहिए कि सभी सॉफ्टवेयर जो स्रोत कोड फॉर्म में वितरित किए गए हैं, इस तरह से बनाए गए हैं। आपको हमेशा निकाले गए स्रोत कोड संग्रह के अंदर प्रलेखन की तलाश करनी चाहिए।
क्या --prefixमतलब है?
जब आप दौड़ते हैं , तो आप यह संकेत दे रहे हैं कि सॉफ़्टवेयर निर्देशिका के तहत स्थापित किया जाना चाहिए
। लेकिन यह शायद ही कभी, अगर ढीली फ़ाइलों को अंदर रखता है । इसके बजाय, यह उन फ़ाइलों को रखता है जो विभिन्न उपनिर्देशिकाओं में विभिन्न उद्देश्यों की पूर्ति करती हैं । यदि वे उपनिर्देशिका मौजूद नहीं हैं, तो यह उन्हें बनाता है।./configure --prefix=directorydirectorydirectorydirectory
निष्पादन योग्य आमतौर पर में जाना directory/binहै, हालांकि वे में जा सकते हैं directory/sbinअगर वे आमतौर पर सिस्टम प्रशासन के लिए इस्तेमाल कर रहे हैं या वे जा सकते हैं (और शायद ही कभी, इन दिनों) में
directory/gamesअगर वे खेल रहे हैं। पुस्तकालयों में
directory/libया इसी तरह की एक और नामित निर्देशिका में जाते हैं
directory/lib32। हैडर फाइलें अंदर जाती हैं
directory/include। मैनुअल पन्नों में जाना
directory/man। सॉफ्टवेयर द्वारा उपयोग की जाने वाली डेटा फाइलें अंदर जाती हैं
directory/share।
यही इसका मतलब है कि उपसर्गdirectory होना । यह माता-पिता की निर्देशिका है जिसमें वे स्थान हैं जिनमें अलग-अलग फाइलें स्थापित की जाएंगी। यह इस प्रकार अधिकांश फाइलों और निर्देशिकाओं के निरपेक्ष रास्तों में एक उपसर्ग के रूप में प्रकट होता है जो रनिंग
या द्वारा बनाई गई है ।make installsudo make install
इसके कुछ अपवाद हैं। सिस्टमव्यापी कॉन्फ़िगरेशन फ़ाइलें - जो कभी-कभी सॉफ़्टवेयर स्थापित करते समय बनाई जाती हैं जो उनका उपयोग करेगी, हालांकि हमेशा नहीं - आमतौर पर अंदर जाती हैं /etc। यह आमतौर पर एक अलग उपसर्ग निर्दिष्ट करके प्रभावित नहीं होता है। यहां तक कि अगर आप बहुत सारे सॉफ़्टवेयर स्थापित करते हैं /usr/local, तो भी यह ज्यादातर उपयोग करेगा
/etc, और आपकी /usr/local/etcनिर्देशिका संभवतया कोई नहीं, खाली, या कुछ अन्य फ़ाइलों को समाहित करेगी।
कई प्रणालियों पर, आप चलकर विशिष्ट फाइल सिस्टम लेआउट के बारे में अधिक जानकारी पा सकते हैं man hier। यदि आप एक GNU / Linux सिस्टम का उपयोग कर रहे हैं, तो आप फाइलसिस्टम पदानुक्रम मानक में दिलचस्पी ले सकते हैं ।