क्या मुझे लिनक्स अनुप्रयोगों को / var या / ऑप्ट में स्थापित करना चाहिए?


83

मैं जावा और टॉमकैट सहित बहुत सारे ओपन सोर्स एप्लिकेशन चलाता हूं। ऐसा लगता है कि अधिकांश निर्देशों में मेरे आवेदन /varनिर्देशिका से चल रहे हैं । लेकिन हर बार एक समय में, मैं /optनिर्देशिका भी देखता हूं । जब मैं उस पर हूँ, मैं भी देखता हूँ /usr/local/और यहाँ तक /etcकि।

मुझे एक फ़ोल्डर या दूसरे में एप्लिकेशन कब स्थापित करना चाहिए? क्या हर एक के पक्ष और विपक्ष हैं? इसका स्वाद इतिहास (सोलारिस बनाम लिनक्स या रेड हैट बनाम उबंटू) के साथ क्या करना है?


8
/ आदि अनुप्रयोगों को छोड़ने के लिए एक अजीब और अनुचित जगह है ...
user5336

मैंने देखा है कि लोग Perl मॉड्यूल की तरह / etc में सामान डालते हैं। यह अजीब है, लेकिन यह होता है ...
ℝaphink

6
हर गैरबराबरी के लिए, इसका बचाव करने के लिए एक चैंपियन है।
Womble

जवाबों:


133

इन मुद्दों के लिए मानक फ़ाइल पदानुक्रम मानक है । यह एक बड़ा दस्तावेज है। मूल रूप से (और बहुत मोटे तौर पर), लिनक्स पर मानक पथ हैं:

  • /bin& /sbinओएस के लिए महत्वपूर्ण कार्यक्रमों के लिए हैं, केवल प्रशासकों के लिए sbin जा रहा है;
  • /usr/bin& /usr/sbinमहत्वपूर्ण कार्यक्रमों के लिए नहीं हैं, केवल प्रशासकों के लिए sbin है;
  • /varकार्यक्रमों के लिए जीवित डेटा के लिए है। यह कैश डेटा, स्पूल डेटा, अस्थायी डेटा (जब तक कि यह /tmpहर रिबूट पर मिटा दिया जाता है), आदि हो सकता है;
  • /usr/localस्थानीय रूप से स्थापित कार्यक्रमों के लिए है। आमतौर पर, यह उन कार्यक्रमों को होस्ट करता है जो मानकों का पालन करते हैं, लेकिन ओएस के लिए पैक नहीं किए गए थे, बल्कि प्रशासक (उदाहरण के लिए ./configure && make && make install) और साथ ही प्रशासक स्क्रिप्ट द्वारा मैन्युअल रूप से इंस्टॉल किए गए थे ;
  • /optउन प्रोग्रामों के लिए है जो पैक नहीं किए गए हैं और मानकों का पालन नहीं करते हैं। तुम बस कार्यक्रम के साथ वहाँ सभी पुस्तकालयों डाल दिया था। यह अक्सर एक त्वरित और गंदा समाधान होता है, लेकिन इसका उपयोग उन कार्यक्रमों के लिए भी किया जा सकता है जो स्वयं द्वारा बनाए जाते हैं और जिसके लिए आप एक विशिष्ट मार्ग चाहते हैं। आप /opt/yourcompanyइसके भीतर अपना रास्ता (जैसे ) बना सकते हैं , और इस मामले में आपको इसे मानक रास्तों के हिस्से के रूप में पंजीकृत करने के लिए प्रोत्साहित किया जाता है;
  • /etc इसमें प्रोग्राम नहीं होना चाहिए, बल्कि कॉन्फ़िगरेशन होना चाहिए।

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

वितरण के बीच कुछ अंतर हैं। उदाहरण के लिए, RedHat सिस्टम libexecनिर्देशिकाओं का उपयोग करते हैं जब डेबियन / उबंटू सिस्टम नहीं करते हैं।

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

यदि आप इसके बारे में अधिक जानना चाहते हैं तो मैं आपको ऊपर दिए गए FHS दस्तावेज़ को पढ़ने के लिए प्रोत्साहित करता हूं।


1
कुछ बुलेट सूचियों में से एक जिसे मैं चीट शीट के रूप में प्रिंट करना चाह सकता हूँ ...
stimpy77

6
के लिए +1 /srv। मैं अपने git रिपॉजिटरी के लिए जगह ढूंढ रहा था और मेरे Apache कंटेंट को पसंद नहीं कर रहा था /var/www/srvएकदम सही जगह लगती है।
श्री हेजहोग

@ ℝएफ़िंक, तो varइसके बजाय इसे क्यों कहा जाता है data?
22

@ मिस्टर हेजहोग, आपको "पसंद नहीं है" से क्या मतलब है? समझाने की परवाह?
पचेरियर

@Pacerier वापस 90 के दशक में आपको बताया जाएगा /varक्योंकि यह "विभिन्न डेटा" के लिए है। शुरुआती दिनों में यूनिक्स को सिंगल ड्राइव पर होस्ट किया गया था। जब यह पर्याप्त नहीं था, तो उन्हें एक नया मिला, इसे माउंट किया /usrऔर सभी उपयोगकर्ता डेटा को वहां स्थानांतरित कर दिया। लेकिन यह पर्याप्त नहीं था और पुरानी ड्राइव जल्द ही फिर से पूरी हो गई थी। इसलिए उन्होंने सभी बायनेरिज़ को स्थानांतरित कर दिया जिससे सिस्टम बूट हो सकता /binहै /usr/bin। वे बस अंतरिक्ष से बाहर भागते हैं। बाद में उन्हें उपयोगकर्ताओं के बीच डेटा साझा करने की आवश्यकता थी इसलिए उन्होंने /varइसे ड्रॉप बॉक्स के रूप में बनाया और उपयोग किया। एफएचएस उस तरह की विरासत के फैसलों से भरा है और इसे एक चुटकी नमक के साथ लेना चाहिए।
cprn

4

optवैकल्पिक सॉफ्टवेयर के लिए खड़ा है। varचर सिस्टम फ़ाइलों के लिए खड़ा है। इसलिए आपके एप्लिकेशन को जाना चाहिए /opt


8
/varसिस्टम फ़ाइलों को अलग करने के लिए है, न कि "विभिन्न"।
Womble

4
/ var "वैरिएबल डेटा फ़ाइलों" के लिए है। यह कहना कि यह "विभिन्न सिस्टम फाइलों" के लिए अस्पष्ट है और संभावित रूप से भ्रामक है। o_O हालांकि आप "ऑप्ट" के बारे में सही हैं।
फीनिक्स 8

@ कार्ड, क्या / ऑप्ट / var के बारे में तब? और </ usr / var>, </ usr / स्थानीय / var> ...
23

@womble यह झूठी व्युत्पत्ति है। यह FHS कहता है, लेकिन यह सच नहीं है। 90 के दशक में आपको बताया जाएगा कि यह /var"विभिन्न डेटा" के लिए है। मेरे पास अभी भी एक प्री-इंटरनेट पुस्तक है, जिसे मैं वापस पढ़ता हूं।
cprn

2

यह निर्भर करता है कि आपका स्थानीय मानक क्या है।

व्यक्तिगत रूप से, मैं एक अच्छे कारण के बिना / var में कुछ भी स्थापित नहीं करता। मेरा / usr / स्थानीय लगभग हमेशा नेटवर्क से दूर रहता है, इसलिए जो कुछ भी पैक नहीं किया जाता है वह / ऑप्ट में स्थापित हो जाता है।


1
आप डेटा को छोड़कर, वैसे भी / var में क्या डालेंगे?
ℝफिंक

1
आमतौर पर प्रोग्राम / वैर में अपना सामान चिपका देंगे। अधिकतर विक्रेता द्वारा आपूर्ति की जाती है - लॉग, कुछ लाइब्रेरी, नियंत्रण फाइलें, .pid फाइलें, उस तरह की चीज।
डेविड मैकिन्टोश

2
मैं काफी सहमत नहीं हूँ। पुस्तकालय, यदि वे स्थिर हैं, में जाना चाहिए /usr। गतिशील रूप से बनाए libs में समाप्त हो सकता है /var/libकभी कभी, लेकिन मैं नहीं दिख रहा है क्या आप वास्तव में चाहते हैं स्थापित में /var, देखने का एक व्यवस्थापक बिंदु से। कार्यक्रम इसे बड़े पैमाने पर उपयोग कर सकता है, लेकिन इससे पहले कि आप इसे लॉन्च करें यह कार्यक्रम काफी खाली होना चाहिए।
ℝफिंक

1
अभी केवल एक चीज जिसे मैंने जानबूझकर / var में स्थापित किया है वह है nfsen / nfdump, और ऐसा इसलिए है क्योंकि एप्लिकेशन के पदचिह्न सभी nfdump फ़ाइलें हैं जो इसे जमा करता है। (और क्योंकि यह एक परीक्षण स्थापित है जो किसी तरह इसे उत्पादन करने के लिए बनाया गया है। इसलिए - "उपयोग के लिए कोई अच्छा कारण नहीं है"।) लेकिन यह बहुत अच्छा है। बेशक, जब से मैं अपनी हार्ड डिस्क, / var, / ऑप्ट और / usr का विभाजन नहीं करता हूं, सब एक ही फाइल सिस्टम के रास्ते में हैं।
डेविड मैकिन्टोश

1
Qmail / var में स्थापित है। यह इसके खिलाफ कई आलोचनाओं में से एक है।
स्टेटिक्सन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.