किस निर्देशिका में मुझे लिनक्स में प्रोग्राम स्थापित करने चाहिए?


43

मैं लिनक्स में एक प्रोग्राम स्थापित करना चाहता हूं और इसे डेमन के रूप में चलाना चाहता हूं। (टीम स्पीक 3 इस मामले में, लेकिन सवाल प्रकृति में सामान्य है)। कोई पैकेज प्रदान नहीं किया गया है, केवल तारांकित बायनेरिज़ है। कहाँ पर निर्देशिका संरचना में मुझे इस तरह का कार्यक्रम करना चाहिए?

वेब पर मैंने पाया कि / ऑप्ट "वैकल्पिक एडऑन ऐप्स" के लिए है, जबकि / usr "उपयोगकर्ता प्रोग्राम" के लिए है। मैंने एक ट्यूटोरियल को सुझाव दिया / चुना, जबकि दूसरे ने sugested / usr।

तो कौन सा "अधिक सही" है?


1
"अधिक सही" आपके वितरण पर निर्भर करता है। आपको अपने वितरण के दिशा-निर्देशों की जांच करनी चाहिए कि पैकेज प्रबंधक द्वारा प्रबंधित सॉफ्टवेयर को कहां रखा जाए (अक्सर /usr/local) या इसके लिए अपना पैकेज कैसे बनाया जाए।
लियाज

शुक्रिया लेयज़। आपकी टिप्पणी ने मुझे जवाब खोजने में मदद की ( askubuntu.com/questions/1148/… )। इसलिए मुझे लगता है कि यह मेरे मामले में / ऑप्ट होना चाहिए (लिनक्स मिंट का उपयोग करना, जो उबंटू पर आधारित है) और एप्लिकेशन एक एकल फ़ोल्डर का उपयोग कर रहा है। यदि आप अपनी टिप्पणी को उत्तर में बदलते हैं, तो मैं इसे स्वीकार करूंगा।
इविर

जवाबों:


27

"अधिक सही" आपके वितरण पर निर्भर करता है। आपको अपने वितरण के दिशा-निर्देशों की जांच करनी चाहिए कि पैकेज प्रबंधक द्वारा प्रबंधित सॉफ्टवेयर को कहां रखा जाए (अक्सर /usr/local) या इसके लिए अपना पैकेज कैसे बनाया जाए।

जैसा कि आपने कहा टीमस्पीक ने सब कुछ एक फ़ोल्डर में डाल दिया (और इसका पुनर्गठन आसान नहीं हो सकता), हाँ /opt/शायद सबसे अच्छा है।

(लेकिन, उदाहरण के लिए, आर्कलिनक्स में, पैकेज मैनेजर वहां स्थापित हो सकता है, इसलिए मैं अभी भी स्थापित करने के लिए PKGBUILD बनाऊंगा /opt।)

इसके अलावा वितरण आमतौर पर फाइलसिस्टम पदानुक्रम मानक का पालन करने की कोशिश करते हैं , इसलिए यह वह जगह है जहां अधिक सामान्य सम्मेलन की तलाश है।


क्या यह जानने के लिए कुछ उपनाम हैं कि उपयोग द्वारा प्रत्येक निर्देशिका कहाँ स्थित है? (उदाहरण के लिए, रूट कॉन्फिगरेशन कहां रखें, कहां बायनेरिज़, डिपेंडेंसीज़, टेम्प्लेट्स डालें ...)
सैंडबर्ग

5

यदि आप अपने स्वयं के सॉफ़्टवेयर का संकलन कर रहे हैं तो आप अंततः स्थापना स्थान को नियंत्रित करेंगे। कन्वेंशन द्वारा, सॉफ़्टवेयर को संकलित और मैन्युअल रूप से स्थापित किया गया (पैकेज मैनेजर के माध्यम से नहीं, उदाहरणार्थ, यम, पैक्मैन) में स्थापित किया गया है /usr/local। कुछ पैकेज (प्रोग्राम) /usr/localअपनी सभी प्रासंगिक फाइलों को संग्रहीत करने के लिए एक उप-निर्देशिका बनाएंगे , जैसे कि /usr/local/openssl। अन्य पैकेज अपनी आवश्यक फ़ाइलों को मौजूदा निर्देशिकाओं जैसे /usr/local/sbinऔर में स्थापित करेंगे /usr/local/etc। ये केवल डिफ़ॉल्ट स्थान हैं और संकलन के दौरान बदले जा सकते हैं।

जब आप सॉफ़्टवेयर संकलित कर रहे हैं, तो स्थापना स्थान को --prefix=विकल्प का उपयोग करके निर्दिष्ट किया जा सकता है ./configure। यह अत्यधिक अनुशंसा की जाती है कि आप अपने पैकेज के सभी उपलब्ध विकल्पों को चलाकर देखें $ ./configure --help | less। इसके अतिरिक्त, आपके पैकेज के साथ प्रदान किए गए INSTALL और README दस्तावेजों को ब्राउज़ करना एक अच्छा विचार है। वे स्थापना निर्देशों और निर्भरता की जानकारी को शामिल करते हैं जो पैकेज के लिए विशिष्ट है।

यह भी ध्यान दिया जाना चाहिए कि यद्यपि आप कहीं भी सॉफ़्टवेयर स्टोर कर सकते हैं, एफएचएस के अनुसार , स्थानीय रूप से स्थापित सॉफ़्टवेयर के लिए स्रोत कोड को /usr/local/src मानकीकरण में संग्रहित किया जाना चाहिए जहां आप अपने स्रोत के पेड़ों को संग्रहीत करते हैं, यदि आपको स्टॉक की प्रतिलिपि बनाने की आवश्यकता है तो आप आसानी से एक पेड़ का पता लगा सकते हैं। कॉन्फ़िगरेशन फ़ाइल या बाइनरी। भले ही कुछ पैकेज इसका उपयोग करते हैं, लेकिन आपके स्रोत कोड को संग्रहीत नहीं किया जाना चाहिए /usr/srcजैसे कि कर्नेल जैसे सिस्टम सॉफ़्टवेयर के लिए निर्दिष्ट है।

अंत में, आपको यह सुनिश्चित करने की आवश्यकता है कि आपका इंस्टॉलेशन स्थान आपके में शामिल है $PATH। यदि आप अपने पैकेज को स्थापित करने का निर्णय लेते हैं, /optलेकिन यह $PATHआपके शेल में नहीं है, तो निष्पादनयोग्य नहीं मिलेंगे और आपको अपने कार्यक्रमों को लागू करने के लिए निरपेक्ष पथ का उपयोग करना होगा। यहाँ से कुछ महान विचार विमर्श कर रहे हैं ए.यू. कॉन्फ़िगर करने के बारे अपने$PATH

अतिरिक्त पढ़ने: man hier


5

लिनक्स स्टैंडर्ड बेस और फ़ाइल-सिस्टम अनुक्रम स्टैंडर्ड यकीनन आप कहाँ और कैसे एक Linux सिस्टम पर सॉफ्टवेयर स्थापित करना चाहिए के मानक हैं और है कि या तो में अपने वितरण में शामिल नहीं है रखने सॉफ्टवेयर सुझाव है /optया /usr/local/या बल्कि उपनिर्देशिका उसमें ( /opt/<package> /opt/<provider> /usr/local/bin)।

सबसे अच्छा अभ्यास सॉफ्टवेयर है जिसे आप अपने वितरण के लिए मूल रूप से इंस्टॉल करने योग्य सॉफ़्टवेयर पैकेज में डाउनलोड करते हैं, उदाहरण के लिए dpkg या rpm प्रारूप। यह सॉफ्टवेयर को रिपोर्ट करने, अपग्रेड करने और साफ-सफाई को सुविधाजनक बनाने में मदद करेगा।


यह बहुत ज्यादा सवाल का जवाब देने के बजाय केवल फिर से बताता है। ओपी को पता था कि /optऔर /usr/local/दो उपलब्ध विकल्प थे, लेकिन विशिष्ट जानकारी चाहते थे, जिनमें से एक विकल्प का उपयोग करना था। यह एक वैध उत्तर हो सकता है अगर यह बजाय यह दावा करता है कि दो स्थान विनिमेय हैं (हालांकि मैं यह विवाद करूंगा कि यह इस तरह के मामले में एक सही उत्तर होगा )।
जेन्बले

1

बायनेरिज़ binसामान्य सम्मेलनों द्वारा फ़ोल्डर में जाते हैं , आप अपने पैकेज की संरचना को कैसे व्यवस्थित करेंगे, यह आपके ऊपर है, मैं सोच सकता हूं कि /opt/<prog_name>/क्या यह केवल बायनेरिज़ की सूची है।


मुझे डर है कि टीम स्पीक 3 के लोगों ने कार्यक्रम को इस तरह से बनाया कि सब कुछ बस एक फ़ोल्डर (बायनेरिज़, फाइल, लॉग्स) में बैठता है, इसलिए यह / बिन या / आदि या / var / लॉग का उपयोग नहीं करता है
आइवर

1

एक्लिप्स इंस्टॉलर के माध्यम से ग्रहण स्थापित करते समय मेरा एक ही सवाल था।

मैंने देखा कि जिम्प, पर्ल और विम को /usr/shareफ़ोल्डर में स्थापित किया गया है और इसे वहां स्थापित करने का निर्णय लिया गया है।


0

वहाँ दो तरीके कार्यक्रम स्थापित किए जा सकते हैं, इस पर निर्भर करता है कि वे कैसे पैक किए जाते हैं।

  1. सॉफ्टवेयर मैनेजर (apt, synaptic, Gdebi आदि) के माध्यम से - प्रोग्राम पैकेज के रूप में होता है, आमतौर पर .deb या rpm। अधिकांश मामलों में सॉफ़्टवेयर प्रबंधक निर्भरता को संभालते हैं और आमतौर पर बायनेरिज़ को स्थापित करेंगे /usr/bin, फ़ाइलों को /etcऔर इसी तरह कॉन्फ़िगर करेंगे । वे आमतौर पर आपके घर में प्रोग्राम के लिए एक कॉन्फिगर फाइल भी बना सकते हैं ~/.foo। यदि आप इस फ़ाइल को संपादित कर सकते हैं, तो आप अपने सत्र के लिए सेटिंग्स को इस तरह आसानी से बदल सकते हैं। जब आप पैकेज को हटाते हैं, तो प्रबंधक सभी फ़ाइलों को ढूंढ लेगा और उन्हें साफ़ कर देगा (यह एक विशेष पाठ फ़ाइल में सभी स्थानों को संग्रहीत करता है)। लेकिन यह कुछ कॉन्फिग फाइलों को संरक्षित कर सकता है, उदाहरण के लिए आपके होम फोल्डर में एक।

  2. आप अपनी वास्तुकला के लिए पूर्व संकलित बाइनरी फ़ाइलों के रूप में एक प्रोग्राम (आमतौर पर संकुचित) डाउनलोड करते हैं। कार्यक्रम की निष्पादन योग्य फ़ाइल आमतौर पर अन्य फ़ाइलों (डायनेमिकली लिंक्ड लाइब्रेरी आदि) के बगल में एक एकल फ़ोल्डर में होती है। इस पूरे फ़ोल्डर को रूट विशेषाधिकारों के साथ /optया /usr/binतो अनुमति दी जा सकती है, यदि अनुमति दी जाती है, तो किसी भी उपयोगकर्ता द्वारा उपयोग किया जा सकता है। मैं खुद बाइनरी फ़ाइलों के साथ फ़ोल्डरों को अपने घर के फ़ोल्डर में डालता हूं ~/bin। अब आपको इसकी बिन फ़ाइल को लागू करके कार्यक्रम चलाने में सक्षम होना चाहिए।

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