स्रोतों से निर्माण का उचित तरीका


12

मैं एक नियमित उपयोगकर्ता के रूप में लॉग इन हूं। क्या मुझे उपयोग करना चाहिए:

./configure && make && make install

या

sudo ./configure && sudo make && sudo make install

या

./configure && make && sudo make install

पैकेज स्थापित करते समय।

और क्या कोई अंतर समझा सकता है।

मैं चाहता हूं कि सभी उपयोगकर्ता इसका उपयोग करने में सक्षम हों।


इससे भी बेहतर ... unix.stackexchange.com
mxmissile

1
आपको ubuntu repositories या PPAs से सॉफ़्टवेयर स्थापित करना चाहिए। यदि आप किसी ऐसी चीज में भाग लेते हैं, जो अभी तक पैक नहीं की गई है, तो अपना खुद का पीपीए शुरू करने पर विचार करें। इस तरह से आप अपने सिस्टम को साफ रखेंगे, अन्य लोगों के लिए भी पैकेज प्रदान करेंगे और चूंकि मुफ्त बोनस को अंततः अधिक परीक्षक मिलेंगे।
vtest 19

जवाबों:


15

आपका 3 संस्करण, सही है ./configure && make && sudo make install। बनाओ और कॉन्फ़िगर एक सामान्य उपयोगकर्ता के रूप में किया जा सकता है क्योंकि आप सिस्टम निर्देशिका में फ़ाइलों को लिखने की कोशिश नहीं कर रहे हैं, make installअक्सर बायनेरिज़ को / usr / bin या बिन में कॉपी करने की कोशिश करेंगे, जिसे लिखने के लिए रूट एक्सेस की आवश्यकता होती है।


... और जो नहीं लिखा जाना चाहिए क्योंकि उनकी सामग्री का प्रबंधन पैकेज प्रबंधन द्वारा किया जाता है।
रीयरियरपोस्ट

2
यहां तक ​​कि आप एक उपयोगकर्ता बनाने के लिए भी जा सकते हैं local, फिर एक chown -R local /usr/localसॉफ्टवेयर जारी करें और फिर सॉफ्टवेयर का उपयोग करके स्थापित करें sudo local make installताकि आपको चेतावनी दी जाए जब एक पैकेज नीचे की तुलना में कहीं और लिखता है /usr/local(जो आपके पैकेज प्रबंधन को गड़बड़ कर सकता है)।
रीयरियरपोस्ट

यदि पैकेज को ग्नू कोडिंग मानकों के अनुसार बनाया गया है, तो एक कच्चा 'कॉन्फ़िगर && मेक && सुडो मेक इनस्टॉल' केवल / usr / लोकल में इंस्टाल होगा, न कि / usr / bin या / bin में।
विलियम पुरसेल 23

4

आपको अंतिम संस्करण चाहिए:

./configure && make && sudo make install

कॉन्फ़िगर करें और कर सकते हैं अपने स्थानीय फ़ोल्डर में लेकिन आपको स्थापित करने के लिए रूट अनुमतियों की आवश्यकता होगी। वह आदेश इसे पूरा करता है।

सुनिश्चित करें कि आप जो एप्लिकेशन इंस्टॉल कर रहे हैं, वह पैकेज मैनेजर में पहले से नहीं है। यह आमतौर पर आपके सिस्टम के लिए पूर्व संकलित सॉफ़्टवेयर का उपयोग करने के लिए बहुत आसान है, क्योंकि कुछ संकलन करने के लिए सभी निर्भरताएं खोजने की कोशिश करना।


2

आपको काम करने वाले कम से कम विशेषाधिकारों का उपयोग करना चाहिए। यह आमतौर पर है:

./configure && make && sudo make install


2

&& आपके मूल शेल द्वारा पार्स किए गए हैं। एक सूडो को सामने रखने से केवल कॉन्फ़िगर प्रभावित होता है। अंतिम विकल्प सबसे अधिक समझ में आता है, क्योंकि यह एक नियमित उपयोगकर्ता के रूप में कॉन्फ़िगर और संकलित करेगा और फिर सभी को उपयोग करने के लिए परिणाम स्थापित करेगा।

एक चेतावनी यह है कि कुछ कॉन्फ़िगर स्क्रिप्ट यह पता लगाएंगी कि वे गैर-रूट उपयोगकर्ताओं के रूप में चल रहे हैं और मेकफाइल्स बनाते हैं जो $ HOME या समान में स्थापित होते हैं। उस स्थिति में, आप 'sudo ./configure' भी करना चाहेंगे। यदि आप या तो कॉन्फ़िगर करते हैं या रूट के रूप में बनाते हैं, तो आपके नियमित-उपयोगकर्ता निर्देशिका में कुछ रूट-स्वामित्व वाली फ़ाइलों की झुंझलाहट होगी।


2

Sudo make install के बजाय आपको sudo checkinstall का इस्तेमाल करना चाहिए

इस तरह, स्थापित प्रोग्राम पैकेज प्रबंधन द्वारा मान्यता प्राप्त है और आप इसे फिर से निकाल सकते हैं, क्या आपको अब इसकी आवश्यकता नहीं होनी चाहिए।

https://help.ubuntu.com/community/CheckInstall

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