make installMakefileलेखक जो भी करना चाहता है, करता है। आमतौर पर, इस बिंदु से, इंस्टॉलेशन डायरेक्टरी को बदलने में बहुत देर हो जाती है, क्योंकि यह अक्सर बिल्ड के दौरान पहले से जाना जाता है , इसलिए फ़ाइलों और कॉन्फ़िगरेशन फ़ाइलों को सही पैथनाम के साथ संदर्भित किया जा सकता है।
हार्डवेयर और ऑपरेटिंग सिस्टम के अंतर के बीच पोर्टेबिलिटी को बेहतर बनाने के लिए कई प्रोजेक्ट GNU ऑटोटूल का उपयोग करते हैं । (अलग-अलग यूनिक्स संस्करण उन कार्यों की घोषणाओं के लिए थोड़ा अलग हेडर का उपयोग करते हैं जो सामान्य पथ से थोड़ा हटकर होते हैं - अधिकांश कार्यक्रमों को छोड़कर विभिन्न स्थानों में घोषित एक या किसी अन्य की आवश्यकता होती है।)
जब कोई प्रोजेक्ट ऑटोटूल का उपयोग करता है, तो इसे स्थापित करने का सामान्य मंत्र है:
./configure
make
make install
./configureआम तौर पर आप की तरह एक कमांड लाइन विकल्प का उपयोग करने की अनुमति देता है --prefix /opt/apacheया एक अलग पथ नाम निर्दिष्ट करने के लिए कुछ इसी तरह। /usr/local/एक सामान्य डिफ़ॉल्ट है prefix। स्थानीय स्तर पर बनाए गए सॉफ़्टवेयर के लिए एक जगह और वितरण-प्रदान किए गए सॉफ़्टवेयर को "मुख्य निर्देशिका" में जीना आसान है: /usr/ /bin/और इसी तरह। (पैकेज़र्स फाइलों को कभी न छूने के लिए बहुत सावधान हैं - उन्हें पता है कि यह विशेष रूप से सिस्टम एडमिनिस्ट्रेटर के लिए है।)/usr/local/
वैसे भी, इसमें ./configure --prefix /path/to/new/prefixएक चर सेट किया जाएगा , जो Makefileप्रोग्राम को संकलित करते समय उपलब्ध है, मैनुअल पेजों को संशोधित करता है ताकि वे फाइलों के लिए सही स्थानों को इंगित करें, कॉन्फ़िगरेशन फ़ाइलों को संशोधित करें, इत्यादि, makeविशेष रूप से आपके द्वारा इंस्टॉल किए गए स्थान के लिए सॉफ़्टवेयर का निर्माण करेंगे और make installइसे उस स्थान पर स्थापित करेगा।
अधिकांश कार्यक्रम अंतिम make installचरण के बिना भी चल सकते हैं - बस ./program_nameअक्सर उन्हें शुरू करना होगा। यह निश्चित रूप से एक प्रति परियोजना बात है - कुछ, जैसे postfix, qmailआदि, ऊपर कई अलग अलग चलती टुकड़े से बना है और उन सब को एक साथ काम करने पर भरोसा कर रहे हैं। दूसरों, जैसे lsया suस्वयं को उस निर्देशिका से ठीक निष्पादित करने के लिए पर्याप्त हो सकता है जिसे उन्होंने बनाया था। (यह अक्सर उपयोगी नहीं होता है - लेकिन कभी-कभी बहुत उपयोगी होता है।)
हालांकि, सभी परियोजनाएं ऑटोटूल का उपयोग नहीं करती हैं - वे बनाए रखने के लिए विशाल , जटिल और दयनीय हैं। हाथ से लिखे Makefileगए लिखने के लिए बहुत सरल हैं, और मुझे व्यक्तिगत रूप से लगता है कि Makefileउपलब्ध कॉन्फ़िगरेशन वेरिएबल के साथ एक सरल वितरण करना डेवलपर्स और उपयोगकर्ताओं दोनों पर बहुत आसान है। (हालांकि यह काम करने पर उपयोगकर्ताओं पर ./configure ; make ; make installमंत्र वास्तव में आसान है।)
make installदेखने के एक प्रोग्रामर बिंदु से कदम दूर है।