./Configure में उपयोग होने पर क्या करता है?


29

इसलिए मेरा बस एक आसान सा सवाल था जो शायद मुझे गूंगा बना देगा, लेकिन मैं सीख रहा हूं

जब मैं ए

./configure --prefix/usr/bin/

उपसर्ग क्या कर रहा है? क्या यह केवल उस स्थान पर पैकेज स्थापित कर रहा है

और क्या कोई उत्तर जटिल संस्थापन के लिए अधिक विस्तृत उत्तर दे सकता है और उसके साथ जाने वाले उपसर्गों और विकल्पों के बारे में विस्तार से बता सकता है।

अगर मुझे एक एप्टीट्यूड इंस्टाल चलाना था तो मैं इसे प्रीफिक्स के साथ एक निश्चित स्थान पर कैसे स्थापित करूंगा

मैंने भी देखा है

 PREFIX=/tmp/installdir make


 PREFIX=/tmp/installdir make install

यदि उपसर्ग को ./configure में कहा जाता है, तो इसे हमेशा इन दो उदाहरणों में क्यों बनाया जाता है?

आपका अग्रिम में ही बहुत धन्यवाद!



अपडेटेड उत्तर की जाँच करें
luv.preet

freetds.org/userguide/config.htm , यह आपकी अधिक मदद करेगा
luv.preet

समीक्षक: यह सॉफ़्टवेयर स्थापित करने के बारे में है । इसमें तीन ऑफ-टॉपिक क्लोज वोट हैं जैसे "उबंटू के बारे में नहीं।" यदि इसे बंद करना किसी भी वास्तविक साइट नीति के अनुरूप है , तो मैं टिप्पणी करने का सुझाव देता हूं। अन्यथा यह बंद होने पर भी इसे फिर से खोल दिया जाएगा।
एलियाह कगन

जवाबों:


32

जब आप सॉफ़्टवेयर के साथ make installया स्थापित करते हैं sudo make install, तो अलग-अलग फ़ाइलों को अलग-अलग निर्देशिकाओं में रखा जाता है। उपयोगकर्ता जो कमांड प्रदान करते हैं, उन्हें निष्पादित करने का इरादा है आमतौर पर एक binनिर्देशिका में जाने के लिए , लाइब्रेरी आमतौर पर एक libनिर्देशिका में जाती हैं, मैनुअल पेज आमतौर पर एक manनिर्देशिका में जाते हैं, और इसके बाद।

जब आप चलते हैं ./configure, तो --prefixविकल्प आपको यह निर्दिष्ट करने देता है कि वे निर्देशिकाएँ कहाँ हैं । इसे --prefixइसलिए कहा जाता है क्योंकि यह आपको उन प्रत्येक निर्देशिकाओं के पथों में उपसर्ग देता है जहां प्रोग्राम या लाइब्रेरी से फ़ाइलें जो आप बना रहे हैं, उन्हें स्थापित किया जाना है। अधिकांश configureस्क्रिप्ट समर्थन करते हैं --prefix, और इसे छोड़ देना और बस चलाना ./configureआम तौर पर इसके बराबर है ./configure --prefix=/usr/local

इसे और अधिक पूरी तरह से उत्तर देने के लिए , मैंने अपने उत्तर से दो वर्गों को पुन: प्रस्तुत किया है कि टार फाइल "विश्व स्तर पर" कैसे स्थापित करें? ( यूनिक्स और लिनक्स पर ), जो इस प्रश्न को विशेष रूप से संबोधित करते हैं:

अपने बिल्ड को कॉन्फ़िगर करना

जब आपके पास स्रोत कोड होता है जिसे चलाने के द्वारा संकलित किया जाता है ./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 सिस्टम का उपयोग कर रहे हैं, तो आप फाइलसिस्टम पदानुक्रम मानक में दिलचस्पी ले सकते हैं ।


2

यह उन चीजों का स्थान बताता है जो वर्तमान पैकेज या सॉफ़्टवेयर को कॉन्फ़िगर करने के लिए आवश्यक हैं।

एक साधारण मामले की तरह, यह ssl पुस्तकालयों का स्थान बता सकता है:

--with-libssh2=/usr/local  #used in configuring nagios

और यह भी बताता है कि आपके सिस्टम के अनुसार प्रोग्राम के उपयुक्त संकलन करने के लिए कौन से संकुल को कॉन्फ़िगर नहीं करना है:

--disable-shared  # used in configuring nagios
--disable-link-balancer  # used in configuring Firehol

ये आपके सिस्टम के लिए उपयुक्त संकलन बनाने के लिए सिर्फ अतिरिक्त विकल्प हैं। यह वही है जो मुझे लगता है। अगर यह कुछ और है तो मुझे सुधारो।

--prefix=PREFIXविकल्प में वास्तुकला स्वतंत्र फ़ाइलों को स्थापित करता है PREFIX। जब आप एक make installकमांड चलाते हैं , तो पुस्तकालयों को PREFIX/libनिर्देशिका में, निष्पादन योग्य PREFIX/binनिर्देशिका में और इसी तरह रखा जाएगा ।

यदि यह तर्क configureकमांड को पास नहीं किया जाता है, तो डिफ़ॉल्ट मान है /usr/local

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