क्या मुझे / usr / स्थानीय या / usr / स्थानीय / शेयर में आवेदन करना चाहिए?


21

"मानक" क्या हैं - क्या मुझे / usr / लोकल या / usr / लोकल / शेयर में एप्लिकेशन (न सिर्फ बाइनरी, बल्कि पूरा डिस्ट्रीब्यूशन) डालना चाहिए।

उदाहरण के लिए स्काला या वेका - इसमें उदाहरण, बायनेरी, लाइब्रेरी और इतने पर हैं। तो यह होगा

/usr/local/scala-2.9.1 

या

/usr/local/share/scala-2.9.1

चूंकि मैं एकमात्र व्यवस्थापक हूं, यह मेरे लिए कोई बड़ी बात नहीं है, लेकिन मैं कुछ ऐसी चीजों का उपयोग करना पसंद करता हूं जो व्यापक रूप से उपयोग की जाती हैं, न कि अपने स्वयं के रीति-रिवाजों के साथ।

महत्वपूर्ण: मैं उन मामलों के बारे में नहीं पूछ रहा हूं, जहां आपको ऐप को / usr / लोकल / बिन, / usr / लोकल / लिबास इत्यादि में विभाजित करना चाहिए। बल्कि मैं उस मामले के बारे में पूछ रहा हूं जब आपको पूरे आवेदन के लिए एक मुख्य निर्देशिका रखनी होगी।


6
मुझे लगता है कि इस तरह के संदर्भ में ऑप्ट / अधिक प्रथागत है।
फहीम मीठा

@ फहीम मीठा, बहुत अच्छी बात। कार्यक्रम का नाम "से: आप के लिए धन्यवाद मैं इस तरह के विवरण" \ Windows \ प ¤ Files \ / opt / 'प्रदाता' निर्देशिका वृक्ष, जिस तरह विंडोज का अपना निर्देशिका वृक्ष सेल्सियस के लिए नए सॉफ्टवेयर स्थापित हो जाएगा करने के लिए इसी तरह की "पाया linuxtopia.org/ online_books / linux_beginner_books / ... क्या आप कृपया अपनी टिप्पणी उत्तर के रूप में पोस्ट कर सकते हैं , इसलिए मैं उत्तर के रूप में चिह्नित
करूंगा

@greenoldman: कृपया यह भी महसूस करें कि सभी फ़ाइलों को एक ही dir में रखना यूनिक्स में एप्लिकेशन इंस्टॉल करने का "मानक" तरीका नहीं है। /optवास्तव में सही उत्तर है, लेकिन यह पारंपरिक यूनिक्स / लिनक्स सॉफ्टवेयर द्वारा "व्यापक रूप से उपयोग किया जाने वाला" नहीं है । वहाँ महान कारणों कई dirs में आपकी फ़ाइलों को विभाजित करने के लिए कर रहे हैं, और यह भी differenciate करने /usrसे/usr/local
MestreLion

उदाहरण के लिए, सभी निष्पादनों को एक एकल /usr/bin(या /usr/local/bin) में रखने से आपके $ PATH को प्रत्येक सॉफ़्टवेयर के लिए इसे संपादित करने की आवश्यकता के बिना सभी सॉफ़्टवेयर तक पहुँचने की अनुमति मिलती है, एक अवधारणा जो विंडोज में मौजूद नहीं है
MestreLion

जवाबों:


19

मुझे लगता है कि इस प्रकार के संदर्भ में ऑप्ट / ऑप्ट मानक अधिक है। Filesystem पदानुक्रम मानक में संबंधित अनुभाग नीचे उद्धृत किया गया है।

वितरण सॉफ़्टवेयर को / ऑप्ट में स्थापित कर सकते हैं, लेकिन स्थानीय सिस्टम व्यवस्थापक की सहमति के बिना स्थानीय सिस्टम व्यवस्थापक द्वारा स्थापित सॉफ़्टवेयर को संशोधित या हटाना नहीं चाहिए।

-Rationale ऐड-ऑन सॉफ़्टवेयर के लिए / ऑप्ट का उपयोग UNIX समुदाय में एक अच्छी तरह से स्थापित अभ्यास है। सिस्टम V अनुप्रयोग बाइनरी इंटरफेस [एटी एंड टी 1990], सिस्टम वी इंटरफ़ेस परिभाषा (तीसरे संस्करण) के आधार पर, यहां परिभाषित एक के समान / ऑप्ट संरचना प्रदान करता है।

इंटेल बाइनरी संगतता मानक v। 2 (iBCS2) भी / ऑप्ट के लिए एक समान संरचना प्रदान करता है।

आम तौर पर, एक सिस्टम पर एक पैकेज का समर्थन करने के लिए आवश्यक सभी डेटा / ऑप्ट / के भीतर मौजूद होना चाहिए, जिसमें / etc / opt / और / var / opt / साथ ही / opt में आरक्षित निर्देशिकाओं को कॉपी करने का इरादा है।

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

नीचे दी गई निर्देशिकाओं की संरचना / ऑप्ट / सॉफ्टवेयर के पैकेट पर छोड़ दी जाती है, हालांकि यह अनुशंसा की जाती है कि पैकेज / ऑप्ट // में स्थापित किए गए हैं और / ऑप्ट / पैकेज के लिए दिशानिर्देशों के समान संरचना का पालन करें। इस संरचना से विचलन का एक वैध कारण उन समर्थन पैकेजों के लिए है, जिनमें / ऑप्ट // लिब या ऑप्ट / बिन में स्थापित फाइलें हो सकती हैं।


5

आपको केवल उन /usr/local/shareफ़ाइलों के लिए उपयोग करना चाहिए जो किसी विशेष आर्किटेक्चर / ओएस संस्करण के लिए विशिष्ट नहीं हैं।

उसके बाद यह है कि क्या आप की मौजूदा उपनिर्देशिका के बीच फ़ाइलों को वितरित आप पर निर्भर है /usr/localया आप में एक नया समर्पित निर्देशिका बनाने यदि /usr/local(लेकिन बाद इच्छा नहीं पहले से ही निष्पादन पर मौजूद हैं PATH, LD_LIBRARY_PATHऔर न ही MANPATH)।

एफएचएस पर एक नजर है


धन्यवाद। इसलिए, यदि यह विंडोज से एक सादृश्य है, तो यह / usr / स्थानीय / SPECIAL_APP होना चाहिए और इसके अंदर इसकी उपनिर्देशिकाएं होनी चाहिए, है ना?
ग्रीनोल्डमैन

@ग्रीनॉल्डमैन: नहींं। कोई सादृश्य फिट होगा क्योंकि विंडोज और लिनक्स विभिन्न मॉडलों का उपयोग करें: खिड़कियों में, आप आमतौर पर सभी फाइलों को एक भी dir, जहां लिनक्स में आप आमतौर पर उन पर विभाजित में रखना bin, share, lib, आदि
MestreLion

3

/optआम होने तक , सामान्य स्थान था /usr/local/lib/<package>


1
मैंने जो पढ़ा है, / ऑप्ट बहुत आम है, केवल व्यापक रूप से उपयोग नहीं किया जाता है, लेकिन अगर आप रिपॉजिटरी में उपलब्ध पैकेजों की मात्रा के बारे में सोचते हैं तो यह एक वृद्धि नहीं है।
ग्रीनोल्डमैन

0

स्थानीय एप्लिकेशन इंस्टॉल करते समय, आप कैसे एक्सेस और अपडेट करना चाहते हैं, इसके आधार पर कई विकल्प हैं। यह भी ध्यान दिया जाना चाहिए कि कुछ विधियाँ आपके पास पहले से मौजूद सिस्टम की तरह दिखती हैं और कुछ अधिक तदर्थ हैं। मेरा सुझाव है कि "सर्वश्रेष्ठ" समाधान वही हैं जो चीजों को प्रबंधित करना आसान बनाते हैं।

मैंने कस्टम इंस्टाल करने के लिए पैकेजों की संख्या के आधार पर इस उत्तर को विभाजित किया है। बंटवारा मेरे अपने अनुभवों पर आधारित है। ये अनुभव संकुल को प्रबंधित करने और कुछ गड़बड़ करने के जोखिमों के समय को मापते हैं। मेरा मतलब यह नहीं है कि मुझे सामान्य मानकों का ज्ञान है, लेकिन इसका मतलब यह है कि निर्णय लेते समय देखने के लिए एक संदर्भ बिंदु के रूप में।

केवल कुछ पैकेजों के लिए , मुझे ऐड-ऑन पैकेजों को रखना होगा /opt, जहां वे हर चीज के रास्ते से बाहर हैं इसलिए कुछ भी उन्हें गड़बड़ नहीं कर सकता है और वे कुछ और गड़बड़ कर सकते हैं। यह वह विधि है जिसका उपयोग मैं अपने NAS पर करता हूं। यह विधि हालाँकि आपके पैथ से बायनेरिज़ को बंद रखती है, इसलिए आपको उन्हें मैन्युअल रूप से जोड़ना होगा। यह अच्छी तरह से काम करता है यदि स्थापित करने के लिए केवल कुछ पैकेज हैं, लेकिन कई हैं तो काफी गड़बड़ हो जाता है।

यहाँ अद्यतन करना काफी आसान है क्योंकि आप बस निर्देशिका को अधिलेखित कर देते हैं।

पेशेवरों:

  • सरल
  • तेजी से सेटअप करने के लिए
  • सिस्टम के अन्य हिस्सों को प्रभावित करने का कोई मौका नहीं
  • अनइंस्टॉल करना उतना ही आसान है जितना इंस्टॉल

विपक्ष:

  • यदि पैकेज स्थापित करने की संख्या बड़ी है, तो बल्कि थकाऊ हो जाता है
  • बनाता है PATHदेखो गन्दा

कुछ संकुल की तुलना में अधिक के लिए , मैं का उपयोग कर की सिफारिश करेंगे /usr/local/<your package>और प्रतीक-लिंकिंग से निष्पादन योग्य /usr/local/binया /usr/local/sbinअगर आप रूट विशेषाधिकारों की जरूरत पर निर्भर करता है। यह आपको अपना PATH बदलने से बचाता है जब भी कुछ नया जोड़ा जाता है तो PATH साफ रहता है। यह वह विधि है जो मैं अपने आर्क लैपटॉप पर सभी गैर-पैक्समैन पैकेज और AUR पैकेज के लिए उपयोग करता हूं।

अद्यतन पैकेज निर्देशिका को अधिलेखित करके और यह जाँच कर लिया जाता है कि सिमिलिंक अभी भी वैध है और ठीक नहीं है या नहीं।

पेशेवरों

  • PATHगड़बड़ नहीं करता है
  • आधार प्रणाली को प्रभावित नहीं करता है
  • अभी भी सभी ऐड-ऑन को हटाने और एक स्वच्छ आधार प्रणाली पर लौटने के लिए बहुत सरल है

विपक्ष:

  • सेटअप करने के लिए और अधिक काम
  • केवल एक पैकेज को हटाने से कुछ खोज होती है

कई पैकेज के लिए । जैसा कि यह मामला नहीं है आप चाहते हैं कि मैं इसे संक्षिप्त रखूंगा। मैं में विभाजित पैकेज की सिफारिश करेंगे bin, lib, share, आदि और उन्हें स्थापित करने /usr/local। यह संरचना को साफ रखने के लिए है। आप यह भी निर्दिष्ट कर सकते हैं कि कौन कहां और कितना लिख ​​सकता है। उदाहरण के लिए आप नहीं चाहते कि लोग निष्पादन योग्य को संशोधित करने के अलावा रूट करें।

यहां अपडेटिंग थोड़ी अधिक कठिन हो जाती है क्योंकि आपको एक से अधिक निर्देशिकाओं को लिखने की आवश्यकता होती है। मैं पूरे मामले की पैकेजिंग करने और पैकेज मैनेजर को बाकी चीजों को संभालने की सलाह दूंगा।

भाग

shareनिर्देशिका खुद के रूप में फहीम के में नोट वास्तुकला स्वतंत्र फ़ाइलों के लिए है लिंक और वास्तुकला निर्भर फ़ाइलों के पास जाना चाहिए lib, lib32, lib64, आदि


पैकेज की संख्या के आधार पर सलाह देना उपयोगी नहीं है; मुझे कैसे पता चलेगा कि मेरा पैकेज किस समूह का है?
अलोइस महदाल

इसके अलावा, जब आप कहते हैं "यह अनुशंसित है", संदर्भ स्रोत या राज्य स्पष्ट रूप से यह है कि यह आपकी सिफारिश है (मैं बाद का अनुमान लगा रहा हूं ...?)
एलोइस महदाल

और वैसे, मैं यह नहीं देखता कि कैसे / ऑप्ट में चीजों की कम संभावना होगी जो आपके ऐप को गड़बड़ कर रही है, जब यह / usr इत्यादि से फैलता है तो अन्य एप्स को मैसेज करना चीजों को ठीक से नाम देना और बग्स न होने के बारे में अधिक है। स्क्रिप्ट स्थापित करें।
एलो महाल्ड

यह निश्चित रूप से नामकरण के बारे में है जो चीजों को गड़बड़ कर देता है। यह कुछ ऐसा है जो मैंने अतीत में अनुभव किया है और यही कारण है कि मैं अपने "अतिरिक्त" पैकेज को बाकी सब से दूर रखना पसंद करता हूं। मैं अभी भी यह नहीं चाहता कि चीजें बदसूरत दिखें।
लॉरी Tšili

और हाँ आप "यह अनुशंसित है" के बारे में सही हैं जैसा कि आप मेरे उत्तर से देख सकते हैं कि मैंने "मैं सिफारिश करूंगा" हर जगह। मैंने अब अपनी वर्तनी को ठीक कर लिया है और साफ़ कर दिया है कि मैं कुछ क्यों सुझाऊँगा। फिर यह सिर्फ मेरा दृष्टिकोण है और निश्चित उत्तर के रूप में नहीं है।
लॉरी त्सिली
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.