make install
Makefile
लेखक जो भी करना चाहता है, करता है। आमतौर पर, इस बिंदु से, इंस्टॉलेशन डायरेक्टरी को बदलने में बहुत देर हो जाती है, क्योंकि यह अक्सर बिल्ड के दौरान पहले से जाना जाता है , इसलिए फ़ाइलों और कॉन्फ़िगरेशन फ़ाइलों को सही पैथनाम के साथ संदर्भित किया जा सकता है।
हार्डवेयर और ऑपरेटिंग सिस्टम के अंतर के बीच पोर्टेबिलिटी को बेहतर बनाने के लिए कई प्रोजेक्ट 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
देखने के एक प्रोग्रामर बिंदु से कदम दूर है।