लिनक्स में अनुप्रयोगों के लिए पारंपरिक स्थापित स्थान क्या है?


72

मैं वर्तमान में NetBeans इंस्टॉल कर रहा हूं, और डिफ़ॉल्ट इंस्टॉल निर्देशिका है /home/thomasowens/netbeans-6.8। मुझे लगता है कि स्थान के एक प्रशंसक नहीं हूँ, इसलिए मैं कम से देख रहा हूँ /etc, /bin, /usr/bin, और /sbin। क्या लिनक्स में एक स्थान है, जो सम्मेलन द्वारा, विंडोज की C:\Program Filesनिर्देशिका के समान है ?

जवाबों:


98

फाइलसिस्टम पदानुक्रम मानक के अनुसार , कई स्थान हैं जो स्वीकार्य हैं, जो आवेदन पर निर्भर करता है। मैं इसे यहां बड़े पैमाने पर उद्धृत कर रहा हूं।

  • bin बेशक "बाइनरी" के लिए छोटा है
  • sbin "सर्वर बाइनरी" के लिए छोटा है, अन्यथा निम्नानुसार परिभाषित किया गया है:

    सिस्टम प्रशासन के लिए उपयोग की जाने वाली उपयोगिताएँ (और अन्य रूट-ओनली कमांड्स)

  • /usr शरेबल, रीड-ओनली डेटा के लिए है, और विभिन्न FHS-कंप्लेंट होस्ट्स (यदि आपके नेटवर्क पर बहुत सारी मशीनें हैं, और वे सभी एक ही आर्किटेक्चर हैं, तो आपको एक सिंगल / usr फोल्डर को साझा करने में सक्षम होना चाहिए। नेटवर्क पर हर मशीन के साथ)

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

इन्हें एक साथ लेना:

  • /usr/bin सिस्टम पर निष्पादन योग्य कमांड की प्राथमिक निर्देशिका है।
  • /usr/sbin सिस्टम व्यवस्थापक द्वारा विशेष रूप से उपयोग किए जाने वाले किसी भी गैर-आवश्यक बायनेरिज़ के लिए है।
  • सिस्टम एडमिनिस्ट्रेशन प्रोग्राम जो सिस्टम की मरम्मत, सिस्टम रिकवरी, माउंटिंग / यूएसआर, या अन्य आवश्यक कार्यों के लिए आवश्यक हैं, उन्हें /sbinइसके स्थान पर रखा जाना चाहिए (यानी, /usr/sbinजाने के लिए माउंट करने के लिए जिन चीजों को आपको एक्सेस करने की आवश्यकता है /sbin)
  • इसी तरह, आवश्यक उपयोगकर्ता आदेशों /usrको माउंट होने से पहले आवश्यक हो सकता है/bin
  • कुछ भी स्थानीय मशीन पर केवल स्थापित में जाना चाहिए /usr/local/binया/usr/local/sbin

हालांकि / usr / स्थानीय के लिए एक अन्य उपयोग है। अधिकांश चीजें जो आप अपने डिस्ट्रो के पैकेज मैनेजर के माध्यम से स्थापित करते हैं, उन्हें / usr के तहत रखा जाएगा; बहुत से लोग इसके बजाय हाथ से / usr / स्थानीय द्वारा संकलित चीजों को डालते हैं। यह उन्हें पैकेज प्रबंधन प्रणाली के रास्ते से बाहर रखता है और आपको यह पता लगाने देता है कि आपने डिस्ट्रो से क्या स्थापित किया है (और इसे वापस लेने की आवश्यकता नहीं है क्योंकि आप इसे फिर से पकड़ सकते हैं) और जो आपने हाथ से संकलित किया है; यह आपको एक ही समय में विभिन्न संस्करण चलाने देता है (जैसे, / usr / bin / firefox बनाम / usr / स्थानीय / बिन / फ़ायरफ़ॉक्स)।


जब आप सोचते थे कि चीजें व्यवस्थित हो गई हैं, तो एक और जगह है, जो संभवत : निकटतम समकक्ष है : c:\Program Files-/opt

/opt ऐड-ऑन एप्लिकेशन सॉफ़्टवेयर पैकेजों की स्थापना के लिए आरक्षित है

/optशायद सबसे करीब बराबर है c:\program files, में है कि यह एक जगह है कि आप एक साथ एक फ़ोल्डर में अपने सभी फाइलों के साथ एक आवेदन मिल जाए, बजाय में फैले को उम्मीद थी /usr/bin, /var, और /etc। यह आमतौर पर केवल बहुत बड़े पैकेजों द्वारा उपयोग किया जाता है, लेकिन इस मामले में, यह देखते हुए कि नेटबीन्स अपना स्वयं का फ़ोल्डर रखना चाहता है, यह संभवतः इसे / ऑप्ट / नेटबीन्स के तहत रखने के लिए सबसे अधिक समझ में आता है।


3
दिलचस्प। अगर मैंने लिनक्स डिज़ाइन किया था तो मैंने नेटवर्क साझा किए गए ऐप्स / usr / साझा किए होंगे और फिर निजी तौर पर स्थानीय होस्ट ऐप / usr में डाल दिए होंगे। इस तरह मैं विरासत / साझा करने के माध्यम से / usr / साझा कर सकता है, साझा करने के लिए।
djangofan

1
वास्तव में अच्छा जवाब। मुझे पैकेज मैनेजमेंट सिस्टम के रास्ते से बाहर रखने के बारे में टिप्पणी भी पसंद है।
डेवपैरिलो

1
निश्चित रूप से / "पूर्ण तृतीय-पक्ष पैकेज" का विकल्प चुनें। अधिकांश इंस्टॉल विभिन्न बायनेरिज़, लाइब्रेरीज़, फाइल्स आदि को अलग-अलग डाइरेक्टरीज़ में विभाजित करेंगे, लेकिन जब आपके पास "ऑल इन वन" डायरेक्टरी होगी, / ऑप्ट करना आसान होगा।
अवन पायने

युगल क्विक क्वेश्चन: 1) अगर / usr को किसी नेटवर्क पर सभी मशीनों के बीच साझा करने योग्य माना जाता है, तो इसका मतलब यह नहीं है कि सभी चाइल्ड डायरेक्टरी भी साझा करने योग्य होंगी, इस प्रकार नेटवर्क पर अन्य मशीनों के लिए दृश्यमान / usr / लोकल दिखाई देने लगेंगे? 2) FHS 3 क्या है) जब आप बढ़ते / usr के लिए आवश्यक आदेशों के बारे में बात करते हैं, तो क्या आप इस बारे में बात कर रहे हैं कि ओएस कैसे बंद होता है, कहते हैं? मैं 7 साल बाद प्रश्नों की बमबारी के लिए माफी मांगता हूं, लेकिन मैं लिनक्स के लिए नया हूं और यह एक ही सवाल था कि इंस्टॉल गाइड देखने के बाद कहें कि सामान कहां रखा जाए, लेकिन वहां लगाने के लिए क्यों नहीं। +1 बीटीडब्लू
Ungeheuer

5

वास्तव में यह व्यक्तिगत प्राथमिकता पर आता है। मैं अपना समझाता हूं कि यह किस लायक है।

/ usr, / usr / bin आमतौर पर सिस्टम द्वारा इंस्टॉल किए जाने वाले सॉफ़्टवेयर के लिए स्थान हैं। जब मैं चीजों को स्वयं स्थापित करता हूं, तो मैं उन्हें कई स्थानों में से एक में स्थापित करता हूं:

  1. यदि यह एक स्क्रिप्ट या छोटा कार्यक्रम है जिसका मैं केवल उपयोग करूंगा, मैं इसे ~ / बिन में स्थापित करता हूं - यह वह जगह है जहां मेरा अधिकांश सामान समाप्त हो जाता है।
  2. यदि यह कुछ ऐसा है जैसा कि आपने (नेटबीन्स) वर्णित किया है, तो इसका पूरा फाइल ट्री है, मैं इसे / ऑप्ट में स्थापित करता हूं
  3. यदि यह एकल निष्पादन योग्य है, तो मैं इसे / usr / स्थानीय / बिन में स्थापित करता हूं

मैं # 2 & # 3 में अंतर क्यों करता हूं? कोई विचार नहीं, यह सिर्फ एक आदत है जो मैंने समय के साथ विकसित की है। यह काम करता है कि / ऑप्ट आमतौर पर फाइलों का एक गहरा पेड़ बन जाता है, लेकिन इसमें केवल 2 या 3 वास्तविक 'चीजें' स्थापित होती हैं। इस समय, मेरे पास lampp और कमल नोट हैं जो ऑप्ट में स्थापित किए गए हैं, 2 निर्देशिकाएं हैं जिनमें से प्रत्येक में उनके नीचे बड़े पेड़ हैं। / Usr / स्थानीय / बिन में, मेरे पास 20 या 30 प्रविष्टियाँ हैं, लेकिन कोई उपनिर्देशिका नहीं।

मैं चीजों को / usr / bin या / usr / sbin में स्थापित नहीं करता क्योंकि मैं उन चीजों को रखना पसंद करता हूं जिन्हें मैं मैन्युअल रूप से जोड़ता हूं (मानक रिपॉजिटरी से बस स्थापित करने का हिस्सा नहीं) अलग।


1

जबकि फाइलसिस्टम पदानुक्रम मानक कुछ मार्गदर्शन प्रदान करता है। मैंने पाया है कि अधिकांश वितरण पैकेजों को स्थापित करना पसंद करते हैं /usr/share

इस वजह से, मैंने पैकेज मैनेजर (आरपीएम / एप्ट-गेट / एमर्ज) के माध्यम से स्थापित नहीं किए गए किसी भी एप्लिकेशन को स्थापित करने का अभ्यास अपनाया है /usr/local। यह मुझे उन अनुप्रयोगों और पुस्तकालयों को रखने की अनुमति देता है जिन्हें पैकेज प्रबंधन के माध्यम से प्रबंधित नहीं किया जाता है जो कि हैं।

यह एक ऐसी तकनीक है जिसने मुझे फेडोरा कोर और जेंटू दोनों के तहत अपने सिस्टम को प्रबंधित करने में मदद की है।


0

मुझे लगता है कि डिफ़ॉल्ट स्थान है /bin, यह वह जगह है जहाँ बहुत कुछ सब कुछ डिफ़ॉल्ट रूप से स्थापित हो जाता है अगर apt-get या इसी तरह का उपयोग कर रहा है ...

... हालाँकि, जब अधिक आधुनिक कार्यक्रमों की बात आती है (या बिना इंस्टॉलर वाले) जिनके पास बहुत सारी अतिरिक्त फाइलें हैं, तो मैं उन्हें अपनी निर्देशिका में रखना पसंद करता हूं /bin


3
/ Bin, / usr / bin, और / sbin में क्या अंतर है? / बिन सबसे अधिक समझ में आता है, क्योंकि यह बिनरी फाइलों के लिए है।
थॉमस ओवंस

0

आमतौर पर वे कई फ़ोल्डरों में स्थापित होते हैं, मुख्य रूप से / usr, / स्थानीय, / बिन, आदि। आप यह पता लगा सकते हैं कि प्रोग्राम जीडीबी इंस्टॉलर (फाइलों के टैब के नीचे) से कहां स्थापित होता है। यदि आप Netbeans को स्थानांतरित करने जा रहे हैं, तो मैं सुझाव दूंगा कि इसे / ऑप्ट में स्थानांतरित करें, क्योंकि यही वह जगह है जहाँ Google अपना सामान स्थापित करता है।


0

जेम्स पोली के जवाब से सहमत, लेकिन वास्तव में डिफ़ॉल्ट निर्देशिका बहुत मायने रखती है जब तक कि आपको कई खातों के बीच आवेदन को साझा करने की आवश्यकता न हो। उदाहरण के लिए, मुझे लिनक्स के तहत फ्लेक्स का काम करने के लिए एक्लिप्स 3.0 (अप्रचलित) को स्थापित करने की आवश्यकता है, और मैंने इसे $ HOME / eclipse3 में डाला।


0

मैं उन अधिकांश ऐड-ऑन ऐप्स के लिए / ऐप्स का उपयोग करना पसंद करता हूं जो मैं कई सर्वरों पर इंस्टॉल करता हूं। मैं अपने nfs सर्वर पर / install / apps में फ़ोल्डर की एक प्रति रखता हूं। जब मैं कोई नया लिनक्स सर्वर बनाता हूं तो मैं इंस्टाल फ़ोल्डर और कॉपी / एप्स को माउंट करता हूं और नए सर्वर पर मेरे पास कई अलग-अलग सामान्य एप्स होते हैं। मैं उन प्रविष्टियों को हटाता हूं जिनकी मुझे इस नए सर्वर के लिए आवश्यकता नहीं है और मैं कर रहा हूं। खैर, शायद मुझे पर्यावरण चर या पथ कथन सेट करने के लिए एक स्क्रिप्ट या तीन चलाने की आवश्यकता है, लेकिन यह बहुत ज्यादा है जो कई नए सर्वर सेट करने में लेता है।

मैं एक विंडोज और .net बैकग्राउंड से आता हूं। .Net का एक वादा यह था कि ज्यादातर एप्स को विंडोज xcopy के जरिए इंस्टॉल किया जा सकता है। मैं लिनक्स में एक ही चीज की तलाश करता हूं। जहां उपलब्ध है, मैं RPM या yum, आदि पर टैरबॉल का चयन करता हूं, इसलिए मैं cp -r के साथ / एप्लिकेशन परिनियोजित कर सकता हूं और भविष्य के परिनियोजन के लिए अपने nfs सर्वर पर ऐप को जोड़ सकता हूं।


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