जैसा कि उल्लेख किया गया है , जैसा कि /usr/local
आवश्यक रूप से सिस्टम प्रशासक द्वारा स्थापित सॉफ्टवेयर के लिए उपसर्ग के रूप में किया जाता है, जबकि /usr
इसका उपयोग वितरण के पैकेज से स्थापित सॉफ्टवेयर के लिए किया जाना चाहिए।
इसके पीछे विचार यह है कि वितरित सॉफ्टवेयर (जैसे कि rpm
और deb
पैकेज) के साथ टकराव से बचा जाए और व्यवस्थापक को "स्थानीय" उपसर्ग पर पूर्ण शासनकाल दें।
इसका मतलब है कि एक व्यवस्थापन कस्टम संकलित सॉफ़्टवेयर को स्थापित कर सकता है, जबकि एक डिब्रो जैसे डिस्ट्रो का उपयोग करते हुए।
/ या usr में रखा गया सॉफ़्टवेयर सिस्टम अपग्रेड द्वारा अधिलेखित किया जा सकता है (हालांकि हम अनुशंसा करते हैं कि वितरण इन परिस्थितियों में डेटा को / etc में अधिलेखित न करें)। इस कारण से, स्थानीय सॉफ़्टवेयर को अच्छे कारण के बिना / usr / स्थानीय के बाहर नहीं रखा जाना चाहिए।
उपयोगकर्ता-विशिष्ट सॉफ़्टवेयर स्थापित करते समय, uther$HOME
उपसर्ग के रूप में उपयोग करने का सुझाव देता है क्योंकि यह सुनिश्चित करता है कि आपके पास लेखन अनुमति है। व्यक्तिगत रूप से, मुझे लगता है $HOME/.local
कि यह एक और अधिक सुंदर समाधान का उपयोग कर रहा है , क्योंकि यह आपके (उम्मीद) अच्छे और स्पष्ट घर निर्देशिका को अव्यवस्थित करता है!
$HOME/.local/share
पहले से ही freedesktop.org XDG बेस डायरेक्टरी स्पेसिफिकेशन में उपयोग किया जाता है , इसलिए जब आप इस पर होते हैं , तो यह $HOME/.local/bin
आपके लिए एक जोड़ने $PATH
और $HOME/.local/lib
इत्यादि बनाने के लिए बहुत कुछ नहीं करता है।
यदि आप वास्तव में नहीं चाहते हैं कि आपका उपसर्ग एक छिपी निर्देशिका हो, तो आप आसानी से इसके लिए एक प्रतीकात्मक लिंक बना सकते हैं, जैसे:
ln -s .local ~/local
पक्षीय लेख
यह ध्यान देने योग्य है कि .config
( विशिष्ट) उपयोगकर्ता विशिष्ट कॉन्फ़िगरेशन फ़ाइलों के .local/etc
लिए $XDG_CONFIG_HOME
उपयोग किया जाने वाला डिफ़ॉल्ट मान है । मुझे यह भी इंगित करना चाहिए कि दुर्भाग्य से, सॉफ्टवेयर का एक बड़ा हिस्सा एक्सडीजी को अनदेखा करता है और जहां भी उन्हें पसंद होता है (आमतौर पर रूट में $HOME
) उन फाइलों को कॉन्फ़िगर करता है । यह भी ध्यान दें कि $XDG_CONFIG_HOME
यदि डिफ़ॉल्ट $HOME/.config
वांछित है तो परेशान हो सकते हैं ।
अजीब तरह से, डिस्ट्रीब्यूशन की डिफॉल्ट कॉन्फिग फाइलों के लिए कोई निर्देशिका आरक्षित नहीं है, इसलिए यह जानने का कोई तरीका नहीं /etc
है कि डिस्ट्रो द्वारा फाइल की गई थी या सिस्टम एडमिनिस्ट्रेटर द्वारा एडिट की गई थी।