2010-07-13 3 views
75

मैं 'मेक इंस्टॉल' चलाने के लिए चाहता हूं, इसलिए मेरे पास सबकुछ है जो मुझे चाहिए, लेकिन मैं इसे अपने स्वयं के फ़ोल्डर में चीजों को स्थापित करना चाहता हूं क्योंकि सिस्टम/यूएसआर/बिन इत्यादि के विपरीत यह संभव है? भले ही यह/usr/bin आदि में उपकरण का संदर्भ देता है?इंस्टॉल करें, लेकिन डिफ़ॉल्ट निर्देशिकाओं के लिए नहीं?

+2

यदि आपने पहले से ही प्रोजेक्ट बनाया है और आपने उपसर्ग के बिना ./configure चलाया है और आप इसे कस्टम पथ में इंस्टॉल करना चाहते हैं, तो http://stackoverflow.com/a/17679654/313113 – bitek

उत्तर

118

यह पैकेज पर निर्भर करता है। Makefile ग्नू Autotools (./configure) द्वारा उत्पन्न होता है, तो आप आमतौर पर तो जैसे लक्ष्य स्थान निर्धारित कर सकते हैं:

./configure --prefix=/somewhere/else/than/usr/local 

Makefile autotools द्वारा उत्पन्न नहीं होती है, लेकिन सॉफ्टवेयर के साथ वितरित, बस यह एक में खोलने के ऊपर संपादक और इसे बदलें। इंस्टॉल लक्ष्य निर्देशिका शायद कहीं एक चर में परिभाषित किया गया है।

+5

देखें कॉन्फ़िगर क्लॉज का पालन करना 'इंस्टॉल करना और इंस्टॉल करना' नहीं होना चाहिए? बेशक – nass

+4

। मैंने माना कि ओपी उसे जानता होगा। – Thomas

12

यह उस मॉड्यूल द्वारा समर्थित है जो आप संकलित करने का प्रयास कर रहे हैं उस पर निर्भर हो सकता है। अपने makefile autotools का उपयोग करके उत्पन्न होता है, का उपयोग करें:

--prefix=<myinstalldir>

कॉन्फ़िगर

चल रहा है जब कुछ संकुल आप भी ओवरराइड करने की अनुमति जब चल रहा है:

make prefix=<myinstalldir> 

लेकिन, अगर आप ./configure का उपयोग नहीं कर रहे हैं, सुनिश्चित करने के लिए केवल एक तरीका है मेकफ़ाइल खोलना और जांचना। यह शीर्ष पर पहले कुछ चरों में से एक होना चाहिए।

+2

आपको यह भी पता होना चाहिए कि 'prefix = ...' को गलत हार्ड-कोड वाले पथों के साथ बाइनरी हो सकती है, क्योंकि आमतौर पर उन्हें './configure --prefix = ...' –

22

चूंकि आप नहीं जानते कि ऑटोमेक का कौन सा संस्करण आप DESTDIR पर्यावरण चर का उपयोग कर सकते हैं।
मेकफ़ाइल सुनिश्चित करने के लिए देखें।

उदाहरण के लिए:

export DESTDIR="$HOME/Software/LocalInstall" && make -j4 install 
+5

के बाद संशोधित नहीं किया जा सकता है यह काम करता है आपने --prefix कमांड लाइन तर्क के बिना कॉन्फ़िगर किया है और आपने पहले ही प्रोजेक्ट बनाया है लेकिन आप इसे डिफ़ॉल्ट स्थानों में इंस्टॉल नहीं करना चाहते हैं बल्कि इसके बजाय एक कस्टम स्थापना पथ निर्दिष्ट करें। यह डिफ़ॉल्ट यूएसआर/स्थानीय/बिन/पथ को DESTDIR में जोड़ देगा और आपकी परियोजना $ HOME/Software/LocalInstall/usr/local/bin/ – bitek

-5

INSTALL_ROOT उपयोग करके देखें।

make install INSTALL_ROOT=$INSTALL_DIRECTORY 
+6

में इंस्टॉल हो जाएगी, लोगों को किसी भी पुष्टि की जानकारी के बिना कुछ "कोशिश" करने का सुझाव न दें। – RichieHH

6
make DESTDIR=./new/customized/path install 

यह त्वरित आदेश उबंटू 16. DESTDIR रास्ते पर opencv रिलीज 3.2.0 स्थापना के लिए मेरे लिए काम किया रिश्तेदार के रूप में अच्छी तरह से पूर्ण रूप हो सकता है।

इस तरह के पुनर्निर्देशन भी उपयोगी हो सकते हैं यदि उपयोगकर्ता के पास व्यवस्थापकीय विशेषाधिकार नहीं हैं जब तक कि DESTDIR स्थान उपयोगकर्ता के लिए सही पहुंच न हो। उदाहरण के लिए/home //

संबंधित मुद्दे