जबकि दोनों को ऑपरेटिंग सिस्टम से संबंधित फ़ाइलों को शामिल करने के लिए डिज़ाइन किया गया है, /opt
और /usr/local
फ़ाइलों के समान सेट को शामिल करने का इरादा नहीं है।
/usr/local
सामान्य रूप से make
कमांड (जैसे, ./configure; make; make install
) का उपयोग करके प्रशासक द्वारा निर्मित फ़ाइलों को स्थापित करने के लिए एक जगह है । यह विचार उन फाइलों के साथ टकराव से बचने के लिए है जो ऑपरेटिंग सिस्टम का हिस्सा हैं, जो या तो स्थानीय लोगों को अधिलेखित या अधिलेखित करेंगे अन्यथा (जैसे, स्थानीय विकल्प /usr/bin/foo
होने पर ओएस का हिस्सा है /usr/local/bin/foo
)।
के तहत सभी फाइलें /usr
OS उदाहरणों के बीच साझा करने योग्य होती हैं, हालांकि यह लिनक्स के साथ शायद ही कभी किया जाता है। यह एक ऐसा हिस्सा है जहां एफएचएस थोड़ा आत्म-विरोधाभासी है, जैसा /usr
कि केवल पढ़ने के लिए परिभाषित किया गया है, लेकिन /usr/local/bin
सफल होने के लिए सॉफ्टवेयर की स्थानीय स्थापना के लिए पढ़ने-लिखने की जरूरत है। SVR4 फ़ाइल सिस्टम मानक, जो कि FHS 'प्रेरणा का मुख्य स्रोत था, इस मुद्दे को दूर करने के बजाय बचने /usr/local
और उपयोग करने की सिफारिश कर रहा है /opt/local
।
/usr/local
मूल बीएसडी से एक विरासत है। उस समय, /usr/bin
OS कमांड का स्रोत कोड था /usr/src/bin
और /usr/src/usr.bin
, जबकि स्थानीय रूप से विकसित कमांड का स्रोत था /usr/local/src
, और उनके बायनेरीज़ में /usr/local/bin
। पैकेजिंग (तारकोल के बाहर) की कोई धारणा नहीं थी।
दूसरी ओर, /opt
अनबंडल्ड पैकेज (यानी पैकेज जो ऑपरेटिंग सिस्टम वितरण का हिस्सा नहीं है, लेकिन एक स्वतंत्र स्रोत द्वारा प्रदान किया गया है) को स्थापित करने के लिए एक निर्देशिका है, प्रत्येक अपने स्वयं के उपनिर्देशिका में। वे पहले से ही एक स्वतंत्र तीसरे पक्ष के सॉफ्टवेयर वितरक द्वारा प्रदान किए गए पूरे पैकेज बनाए गए हैं। /usr/local
सामान के विपरीत , ये पैकेज निर्देशिका सम्मेलनों (या कम से कम उन्हें चाहिए) का पालन करते हैं। उदाहरण के लिए, इसमें someapp
स्थापित किया जाएगा /opt/someapp
, इसकी एक कमांड होने के साथ /opt/someapp/bin/foo
, इसकी कॉन्फ़िगरेशन फ़ाइल अंदर होगी /etc/opt/someapp/foo.conf
और इसकी लॉग इन फाइलें /var/opt/someapp/logs/foo.access
।
/usr/local
का एक स्थानीय संस्करण/usr
है, जबकि/opt
मिस सामान के लिए जगह धारक है।