कभी-कभी मैं apt
किसी अन्य पैकेज मैनेजर का उपयोग करने के बजाय मैन्युअल रूप से एप्लिकेशन इंस्टॉल करता हूं ।
क्या स्थान ( /usr/
, /usr/local/
, /opt/
, /home/
, आदि) उपयोगकर्ता अनुप्रयोगों की स्थापना के लिए "सर्वोत्तम प्रथाओं" ने सुझाव दिया है?
कभी-कभी मैं apt
किसी अन्य पैकेज मैनेजर का उपयोग करने के बजाय मैन्युअल रूप से एप्लिकेशन इंस्टॉल करता हूं ।
क्या स्थान ( /usr/
, /usr/local/
, /opt/
, /home/
, आदि) उपयोगकर्ता अनुप्रयोगों की स्थापना के लिए "सर्वोत्तम प्रथाओं" ने सुझाव दिया है?
जवाबों:
वास्तव में निर्भर करता है। यदि एप्लिकेशन में एक मेकफाइल है, या उदाहरण के लिए अजगर एप्लिकेशन के लिए यदि एप्लिकेशन डिस्टुटिल्स (जैसे, एक setup.py
फ़ाइल है), या एक समान बिल्ड / इंस्टॉल सिस्टम का उपयोग करता है, तो आपको इसे स्थापित करना चाहिए /usr/local/
। यह अक्सर डिफ़ॉल्ट व्यवहार होता है।
जो मैं समझता हूं, उसमें /usr/local/
एक पदानुक्रम है जो समान है /usr/
। हालांकि, जैसी निर्देशिकाएं /usr/bin/
और /usr/lib/
आमतौर पर पैकेजों के माध्यम से आरक्षित होती हैं apt
। तो "स्थापित" होने की उम्मीद में एक कार्यक्रम में /usr/
ठीक काम करना चाहिए /usr/local/
।
अगर आपको बस एक टारबॉल निकालने और सीधे (जैसे फ़ायरफ़ॉक्स) चलाने की आवश्यकता है, तो इसे डालें /opt/
। एक प्रोग्राम जिसे बस एक निर्देशिका की आवश्यकता है और उस निर्देशिका के सापेक्ष सभी फाइलें / लाइब्रेरी मिलेंगी, जिसमें एक निर्देशिका खुद के लिए प्राप्त कर सकते हैं /opt/
।
opt/
में भूल जाते हैं - मेरी राय में आपने सिर पर कील ठोंकी है क्योंकि यह उद्देश्य के लिए है।
~/.local/share
? @ मार्को
~
(अपने होम निर्देशिका) के अंदर चीजें स्थापित कर सकते हैं , लेकिन यह केवल एक उपयोगकर्ता के लिए एक आवेदन को सुलभ बनाएगा। आपके सिस्टम के अन्य उपयोगकर्ताओं को उस सॉफ़्टवेयर के अपने इंस्टॉलेशन को स्थापित और बनाए रखना होगा। अनुप्रयोगों को स्थापित करने के सर्वोत्तम तरीकों के लिए अपने होम डायरेक्टरी को स्थापित करें, मेरा मानना है कि मजबूत दिशानिर्देश नहीं हैं क्योंकि आप सिस्टम पैकेज में हस्तक्षेप नहीं करेंगे।
यह याद रखना अच्छा है कि /usr
यह उपयोगकर्ता के लिए नहीं बल्कि यूनिक्स प्रणाली संसाधनों के लिए खड़ा है ।
जैसे, मैं यह पता लगाने की कोशिश करता हूं कि किसी भी वितरण के पास सभी सामग्रियों पर स्टॉम्प करने का अधिकार है /usr,
और सिस्टम में मेरे विशिष्ट जोड़ अंदर जाते हैं /usr/local
, जिसे मैं अपग्रेड करने से पहले संरक्षित करता हूं।
इस बीच, एप्लिकेशन और अन्य चीजें अंदर जाती हैं /opt
।
कुछ लोग आराम से सामान रखना पसंद करते हैं /home
, हालांकि मैं शायद ही कभी उस सम्मेलन का पालन करता हूं।
उस सभी ने कहा, मैं वितरण पैकेज प्रबंधक को चीजों को पहले करने देता हूं, और फिर ऊपर जब हाथ रोलिंग सामान होता है।
User
। ऐसा इसलिए था क्योंकि लिनक्स उपयोगकर्ता डेवलपर्स थे। पहले जैसे ही यह देवों और उपयोगकर्ताओं में /home
विभक्त होने लगा , dir को पेश किया गया। और फिर किसी को यह कहने का विचार था कि इसका Unix System Resources
वास्तव में कोई मतलब नहीं है, क्योंकि हमारे पास Unix system Resources
है/dev
फ़ायरफ़ॉक्स डेवेल इन / होम / यूज़र / ऑप्ट / जैसे अस्थिर प्रोग्राम स्थापित करें और इसे हटाने में बहुत आसान बनाता है, और अन्य उपयोगकर्ताओं के लिए कोई भ्रम नहीं है कि उन्हें किस संस्करण का उपयोग करना चाहिए ... इसलिए यदि यह वैश्विक उपयोग के लिए प्रोग्राम नहीं है, तो इंस्टॉल करें यह आपके घर निर्देशिका में एक सबफ़ोल्डर में है।
/ Usr / में कभी भी प्रोग्राम इंस्टॉल न करें, इससे अराजकता होने की संभावना है, / usr / में स्थापित चीजें केवल वितरण पैकेज के लिए होती हैं। / usr / स्थानीय / स्थानीय रूप से संकलित संकुल के लिए है। और srtucture बिलकुल उसी तरह से काम करता है! / usr / स्थानीय / में फ़ाइलें / usr / में फ़ाइलों पर प्राथमिकता दी जाएगी
/ ऑप्ट / पूर्व-संकलित (बाइनरी) पैकेज (थंडरबर्ड, एक्लिप्स, नेटबीन्स, आईबीएम नेटस्फेयर, आदि) और इसी तरह की स्थापना के लिए इस्तेमाल किया जाना चाहिए। लेकिन अगर वे केवल एक ही उपयोगकर्ता के लिए हैं तो उन्हें आपके होम डायरेक्टरी में रखा जाना चाहिए।
यदि आप "अजीब" स्थान में स्थापित प्रोग्राम को चलाने में सक्षम होना चाहते हैं (जैसे / घर / उपयोगकर्ता / ऑप्ट / फ़ायरफ़ॉक्स /) पूरे पथ को टाइप किए बिना आपको इसे अपने $ PATH चर में जोड़ने की आवश्यकता है, तो आप ऐसा कर सकते हैं आपके /home/user/.profile में इस तरह की एक पंक्ति जोड़ना
export PATH=/home/user/opt/firefox:$PATH
फ़ोल्डर का नाम वह होना चाहिए जहां निष्पादन योग्य फ़ाइल जिसे आपको चलाने की आवश्यकता है वह स्थित है।
लिनक्स फाइलसिस्टम पदानुक्रम मानक इंगित करता है /usr/local
।
से http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html :
'/ Usr / लोकल' के पीछे मूल विचार '' usr '' के अलावा हर मशीन पर एक अलग ('लोकल') 'usr' डायरेक्टरी का होना था, जो शायद कहीं और से केवल पढ़ने के लिए मुहिम शुरू की जा सकती है। यह '/ usr' की संरचना को कॉपी करता है। इन दिनों, '/ usr / स्थानीय' को व्यापक रूप से एक अच्छी जगह के रूप में माना जाता है जिसमें स्व-संकलित या तीसरे पक्ष के कार्यक्रम रखे जाते हैं। / Usr / स्थानीय पदानुक्रम स्थानीय रूप से सॉफ़्टवेयर स्थापित करते समय सिस्टम व्यवस्थापक द्वारा उपयोग के लिए है। सिस्टम सॉफ्टवेयर के अपडेट होने पर इसे अधिलेखित होने से सुरक्षित होना चाहिए। इसका उपयोग उन कार्यक्रमों और डेटा के लिए किया जा सकता है जो होस्ट के समूह के बीच साझा करने योग्य हैं, लेकिन इन / usr में नहीं पाए जाते हैं। स्थानीय रूप से स्थापित सॉफ़्टवेयर को / usr / usr के बजाय / usr के भीतर रखा जाना चाहिए जब तक कि इसे / usr में सॉफ़्टवेयर को बदलने या अपग्रेड करने के लिए स्थापित नहीं किया जा रहा हो।
मेरे घर में आमतौर पर "प्रोग्राम" नाम का एक फोल्डर होता है, जहां मैं उन कार्यक्रमों को स्थापित करता हूं, जो काफी अजीब होते हैं (या नहीं) वे अभी सभी जावा सामान हैं।
मेरे लिए इसका एक बड़ा फायदा है, जब मैं अपने घर के बाकी हिस्सों के साथ चले गए कंप्यूटर को फिर से स्थापित या परिवर्तित करता हूं। इसका एक स्पष्ट नुकसान है, वे ऐप्स केवल मेरे उपयोगकर्ता के लिए उपलब्ध हैं।
/
डायरेक्टरी करके ही करने की कोशिश की, फिर वही पुराना यूजरनेम और पासवर्ड टाइप किया लेकिन मैंने पाया कि उबंटू एक और होम फोल्डर बनाता है।
अपने एलियन पैकेज को डिबेट में बदलने के लिए "चेकइंस्ट" का उपयोग करें ताकि पैकेज मैनेजर का उपयोग करके इसे अनइंस्टॉल किया जा सके।
ध्यान दें कि कॉन्फिग फाइल्स को अक्सर कॉन्फिग फाइल्स के रूप में हैंडल नहीं किया जाएगा (शायद नजरअंदाज कर दिया गया, या शायद ऐप के हिस्से के रूप में व्यवहार किया गया), और यह कि प्री-और पोस्ट-इंस्टॉल स्क्रिप्ट कभी-कभी उलझ जाती हैं, हालांकि यह आम तौर पर आपको चेतावनी देता है जब यह सोचता है डिबेट में एक बुरी प्री- या पोस्ट-इंस्टॉल स्क्रिप्ट होगी।