उपयोगकर्ता एप्लिकेशन इंस्टॉल करते समय, "सर्वोत्तम अभ्यास" कहां स्थित होने का सुझाव देते हैं?


210

कभी-कभी मैं aptकिसी अन्य पैकेज मैनेजर का उपयोग करने के बजाय मैन्युअल रूप से एप्लिकेशन इंस्टॉल करता हूं ।

क्या स्थान ( /usr/, /usr/local/, /opt/, /home/, आदि) उपयोगकर्ता अनुप्रयोगों की स्थापना के लिए "सर्वोत्तम प्रथाओं" ने सुझाव दिया है?


हर बार स्रोत से चीजों को स्थापित करने के लिए, मैंने इसे करने के लिए एक छोटा सा उपकरण लिखा है जो आपकी शेल स्टार्टअप फ़ाइल में परिवर्तन स्वयं करता है (और आपके लाइब्रेरी उपसर्ग को संशोधित भी करता है, यदि आप इसे पूछते हैं, तो उन कार्यक्रमों के लिए जो साझा पुस्तकालयों पर निर्भर हैं )। बहुत अमीर नहीं है, लेकिन यह समय का 99% काम करता है।
new123456

संबंधित पोस्ट: askubuntu.com/q/138547/62483
लुसियो

1
के बीच के अंतर पर महान चर्चा /optऔर /usr/local: unix.stackexchange.com/q/11544/11917
Blong

जवाबों:


184

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

जो मैं समझता हूं, उसमें /usr/local/एक पदानुक्रम है जो समान है /usr/। हालांकि, जैसी निर्देशिकाएं /usr/bin/और /usr/lib/आमतौर पर पैकेजों के माध्यम से आरक्षित होती हैं apt। तो "स्थापित" होने की उम्मीद में एक कार्यक्रम में /usr/ठीक काम करना चाहिए /usr/local/

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


24
ऐसा लगता है कि बहुत से लोग इस बारे opt/में भूल जाते हैं - मेरी राय में आपने सिर पर कील ठोंकी है क्योंकि यह उद्देश्य के लिए है।
मार्को Ceppi

3
/ Usr / bin से सिम्कलिन बनाएं या इसे PATH में जोड़ें ~ / .bashrc
एलेक्स

1
किस बारे में ~/.local/share? @ मार्को
अंतिम

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

1
क्या ऐसे ऐप्स इंस्टॉल करना गलत है, जो / home / ubuntu / myapp के तहत 'tar से अनज़िप्ड' हैं - क्या / ऑप्ट / myapp के साथ तुलना में यह बना है?
जार्च

116

यह याद रखना अच्छा है कि /usrयह उपयोगकर्ता के लिए नहीं बल्कि यूनिक्स प्रणाली संसाधनों के लिए खड़ा है

जैसे, मैं यह पता लगाने की कोशिश करता हूं कि किसी भी वितरण के पास सभी सामग्रियों पर स्टॉम्प करने का अधिकार है /usr,और सिस्टम में मेरे विशिष्ट जोड़ अंदर जाते हैं /usr/local, जिसे मैं अपग्रेड करने से पहले संरक्षित करता हूं।

इस बीच, एप्लिकेशन और अन्य चीजें अंदर जाती हैं /opt

कुछ लोग आराम से सामान रखना पसंद करते हैं /home, हालांकि मैं शायद ही कभी उस सम्मेलन का पालन करता हूं।

उस सभी ने कहा, मैं वितरण पैकेज प्रबंधक को चीजों को पहले करने देता हूं, और फिर ऊपर जब हाथ रोलिंग सामान होता है।


35
यह याद रखने योग्य है कि 'यूनिक्स सिस्टम रिसोर्सेज' एक नया नाम है AFTER '/ home' जोड़ा गया। पुराने, पुराने, पुराने दिनों (यूनिक्स संस्करण 6 et.al.) में आपको / usr / jimmy, / usr / siobhan, / usr / ahmed, आदि जैसी निर्देशिकाएं दिखाई देंगी क्योंकि "उपयोगकर्ता" निर्देशिकाओं को usr / usr में संग्रहीत किया गया था। ।
मार्क लेइटन फिशर

5
ठीक है मैं काटता हूं: ऑप्ट स्टैंड किसके लिए है?
सेठ

3
@ सेठ मुझे लगता है कि यह 'वैकल्पिक' है - यह मूल रूप से सॉफ़्टवेयर के लिए था जो डिफ़ॉल्ट स्थापना का हिस्सा नहीं था।
कार्ल एच।

5
/ usr है User। ऐसा इसलिए था क्योंकि लिनक्स उपयोगकर्ता डेवलपर्स थे। पहले जैसे ही यह देवों और उपयोगकर्ताओं में /homeविभक्त होने लगा , dir को पेश किया गया। और फिर किसी को यह कहने का विचार था कि इसका Unix System Resourcesवास्तव में कोई मतलब नहीं है, क्योंकि हमारे पास Unix system Resourcesहै/dev
Info-Screen

2
सही, / usr एक backronym है। उद्देश्य उन दिनों से बदल गया है जब यूनिक्स 1969 में पीडीपी -7 पर वापस चल रहा था।
वॉल्ट स्टोनबर्नर

34

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

/ Usr / में कभी भी प्रोग्राम इंस्टॉल न करें, इससे अराजकता होने की संभावना है, / usr / में स्थापित चीजें केवल वितरण पैकेज के लिए होती हैं। / usr / स्थानीय / स्थानीय रूप से संकलित संकुल के लिए है। और srtucture बिलकुल उसी तरह से काम करता है! / usr / स्थानीय / में फ़ाइलें / usr / में फ़ाइलों पर प्राथमिकता दी जाएगी

/ ऑप्ट / पूर्व-संकलित (बाइनरी) पैकेज (थंडरबर्ड, एक्लिप्स, नेटबीन्स, आईबीएम नेटस्फेयर, आदि) और इसी तरह की स्थापना के लिए इस्तेमाल किया जाना चाहिए। लेकिन अगर वे केवल एक ही उपयोगकर्ता के लिए हैं तो उन्हें आपके होम डायरेक्टरी में रखा जाना चाहिए।

यदि आप "अजीब" स्थान में स्थापित प्रोग्राम को चलाने में सक्षम होना चाहते हैं (जैसे / घर / उपयोगकर्ता / ऑप्ट / फ़ायरफ़ॉक्स /) पूरे पथ को टाइप किए बिना आपको इसे अपने $ PATH चर में जोड़ने की आवश्यकता है, तो आप ऐसा कर सकते हैं आपके /home/user/.profile में इस तरह की एक पंक्ति जोड़ना

export PATH=/home/user/opt/firefox:$PATH

फ़ोल्डर का नाम वह होना चाहिए जहां निष्पादन योग्य फ़ाइल जिसे आपको चलाने की आवश्यकता है वह स्थित है।


26

लिनक्स फाइलसिस्टम पदानुक्रम मानक इंगित करता है /usr/local

से http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html :

'/ Usr / लोकल' के पीछे मूल विचार '' usr '' के अलावा हर मशीन पर एक अलग ('लोकल') 'usr' डायरेक्टरी का होना था, जो शायद कहीं और से केवल पढ़ने के लिए मुहिम शुरू की जा सकती है। यह '/ usr' की संरचना को कॉपी करता है। इन दिनों, '/ usr / स्थानीय' को व्यापक रूप से एक अच्छी जगह के रूप में माना जाता है जिसमें स्व-संकलित या तीसरे पक्ष के कार्यक्रम रखे जाते हैं। / Usr / स्थानीय पदानुक्रम स्थानीय रूप से सॉफ़्टवेयर स्थापित करते समय सिस्टम व्यवस्थापक द्वारा उपयोग के लिए है। सिस्टम सॉफ्टवेयर के अपडेट होने पर इसे अधिलेखित होने से सुरक्षित होना चाहिए। इसका उपयोग उन कार्यक्रमों और डेटा के लिए किया जा सकता है जो होस्ट के समूह के बीच साझा करने योग्य हैं, लेकिन इन / usr में नहीं पाए जाते हैं। स्थानीय रूप से स्थापित सॉफ़्टवेयर को / usr / usr के बजाय / usr के भीतर रखा जाना चाहिए जब तक कि इसे / usr में सॉफ़्टवेयर को बदलने या अपग्रेड करने के लिए स्थापित नहीं किया जा रहा हो।


1
ऑप्ट पेज पर इस जानकारी के साथ इस usr / usr / स्थानीय सामान का विरोध करने लगता है: tldp.org/LDP/Linux-Filesystem-Hierarchy/html/opt.html "" यह निर्देशिका सभी सॉफ्टवेयर और ऐड-ऑन पैकेजों के लिए आरक्षित है जो डिफ़ॉल्ट स्थापना का हिस्सा नहीं हैं। उदाहरण के लिए, StarOffice, Kylix, Netscape Communicator और WordPerfect पैकेज आम तौर पर यहां मिलते हैं। FSSTND का अनुपालन करने के लिए, इस निर्देशिका में सभी तृतीय पक्ष एप्लिकेशन इंस्टॉल किए जाने चाहिए। "..." (Windows उसी तरह अपनी खुद की निर्देशिका ट्री C: \ Windows \ Progam Files \ "प्रोग्राम का नाम स्थापित करेगा) ")"
पॉड

6

मेरे घर में आमतौर पर "प्रोग्राम" नाम का एक फोल्डर होता है, जहां मैं उन कार्यक्रमों को स्थापित करता हूं, जो काफी अजीब होते हैं (या नहीं) वे अभी सभी जावा सामान हैं।

मेरे लिए इसका एक बड़ा फायदा है, जब मैं अपने घर के बाकी हिस्सों के साथ चले गए कंप्यूटर को फिर से स्थापित या परिवर्तित करता हूं। इसका एक स्पष्ट नुकसान है, वे ऐप्स केवल मेरे उपयोगकर्ता के लिए उपलब्ध हैं।


मैं घर फ़ोल्डर में डेटा खोए बिना Ubuntu 16.04 को कैसे पुनर्स्थापित कर सकता हूं? मैंने फॉर्मेट /डायरेक्टरी करके ही करने की कोशिश की, फिर वही पुराना यूजरनेम और पासवर्ड टाइप किया लेकिन मैंने पाया कि उबंटू एक और होम फोल्डर बनाता है।
इब्राहिम दिसौकी

1

अपने एलियन पैकेज को डिबेट में बदलने के लिए "चेकइंस्ट" का उपयोग करें ताकि पैकेज मैनेजर का उपयोग करके इसे अनइंस्टॉल किया जा सके।

ध्यान दें कि कॉन्फिग फाइल्स को अक्सर कॉन्फिग फाइल्स के रूप में हैंडल नहीं किया जाएगा (शायद नजरअंदाज कर दिया गया, या शायद ऐप के हिस्से के रूप में व्यवहार किया गया), और यह कि प्री-और पोस्ट-इंस्टॉल स्क्रिप्ट कभी-कभी उलझ जाती हैं, हालांकि यह आम तौर पर आपको चेतावनी देता है जब यह सोचता है डिबेट में एक बुरी प्री- या पोस्ट-इंस्टॉल स्क्रिप्ट होगी।

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