सॉफ्टवेयर स्रोत फ़ाइलों को रखने के लिए मानक स्थान


16

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


1
जैसा कि टेर्डन ने लिखा / usr / src मानक स्थान है, और आप यहाँ कर्नेल स्रोत (/ usr / src / linux / usr / src / linux-version से जुड़े) और उदाहरण के लिए X11 के लिए निर्देशिकाएं खोज सकते हैं। स्थानीय रूप से स्थापित संकुल (/ usr / स्थानीय) के लिए स्रोत-कोड / usr / स्थानीय / src में बेहतर फिट बैठता है। यदि आप अपने आप से "मैन्युअल रूप से" पैकेज बनाना चाहते हैं, तो अपने होमडायर में एक src- निर्देशिका बनाना शायद एक अच्छा विचार है ... याद रखें कि आपको डाउनलोड नहीं करना चाहिए, अनपैक या रूट के रूप में निर्माण करना चाहिए - केवल के रूप में इंस्टॉल करें! यदि आप डिबेट / आरपीएम-पैकेज बनाते हैं, तो अस्थायी निर्माण निर्देशिका (जैसे। अंडर / var / tmp) आमतौर पर इसके बजाय उपयोग की जाती हैं। TBC
बार्ड कोपरुड

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

जवाबों:


21

जब भी आप अपने आप से ऐसा कुछ पूछते हैं, तो फाइलसिस्टम पदानुक्रम मानक (FHS) की जाँच करें। इसके बाद, आपको निम्नलिखित प्रविष्टि मिलेगी:

usr / src: स्रोत कोड (वैकल्पिक)

उद्देश्य

स्रोत कोड इस उपनिर्देशिका में रखा जा सकता है, केवल संदर्भ उद्देश्यों के लिए

तो आप अपनी स्रोत फ़ाइलों को उपनिर्देशिकाओं में रख सकते हैं /usr/src। उस ने कहा, यह एक वैकल्पिक निर्देशिका है, ताकि आप वास्तव में जहां चाहें उन्हें रख सकें। स्रोत कोड प्रासंगिक नहीं है जब आप इसे एक निष्पादन योग्य में संकलित करते हैं, तो सिस्टम को किसी विशिष्ट स्थान पर कुछ स्रोत के सुलभ होने की आवश्यकता नहीं होगी।

निष्कर्ष में: /usr/srcएक सुंदर मानक स्थान है, लेकिन यदि आप चाहें तो अपना खुद का चयन करने के लिए स्वतंत्र महसूस करें।


6
बस ध्यान रखें कि आप हो वास्तव में साथ खिलवाड़ किया जा नहीं करना चाहती /usr/srcएक पर गैर -Linux प्रणाली। BSD अपने बेस सिस्टम स्रोतों को डिफ़ॉल्ट रूप से वहां रखता है और आप उन्हें तृतीय-पक्ष सॉफ़्टवेयर के साथ जोड़ना नहीं चाहते हैं। बस अपने में निर्माण $HOMEकहीं ...
Kusalananda

1
एक ही के कुछ उप निर्देशिकाओं पर लागू /usr/srcडेबियन डेरिवेटिव पर, यदि आप कुछ संकुल स्थापित होना ( gcc-6-source, binutils-source, संकुल DKMS, कर्नेल हेडर आदि)। डेबियन पर, एक अच्छी सुविधा है जहाँ आप अपने आप को उस srcसमूह में जोड़ सकते हैं जो स्वयं का मालिक है /usr/src, और फिर वहाँ अपने आप को (बिना sudoया जो भी आवश्यक है) लिखें ।
स्टीफन किट

और फेडोरा पर, आपको स्पर्श नहीं करना चाहिए /usr/src/debugऔर /usr/src/kernels(AFAICS)।
स्टीफन किट

"स्रोत कोड रखा जा सकता है"। क्या एक टाइपो "स्थान" रखा गया है, या मैं कुछ याद कर रहा हूं?
फहीम मीठा

3
मैं और आगे जाऊंगा और कहूंगा कि आपको /usrकिसी भी प्रणाली को छूना नहीं चाहिए । आपको चीजों को अंदर रखना चाहिए /usr/local। क्या BSD का आप उपयोग कर रहे हैं /usr/local/src?
मुजेर

13

/usr/local/srcस्रोत कोड रखने के लिए एक सुरक्षित जगह है, और यह भी निर्माण। FHS कहता है :

Directory   Description  
src         Local source code

और भी

/ Usr / स्थानीय पदानुक्रम स्थानीय रूप से सॉफ़्टवेयर स्थापित करते समय सिस्टम व्यवस्थापक द्वारा उपयोग के लिए है। सिस्टम सॉफ्टवेयर के अपडेट होने पर इसे अधिलेखित होने से सुरक्षित होना चाहिए।

यह स्पष्ट नहीं है कि "स्थानीय स्रोत कोड" का क्या मतलब है, लेकिन यह स्पष्ट है कि सिस्टम कुछ भी /usr/local/src, इसके विपरीत में जगह देने की कोशिश नहीं करने वाला है /usr/src, इसलिए वहां कोड डालने के लिए थोड़ा नकारात्मक लगता है।

वास्तव में, मेरा एक अलग फाइल सिस्टम है:

Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/data-local_src     79G   46G   30G  61% /usr/local/src

नोट: कम से कम डेबियन पर, आपके उपयोगकर्ता को जोड़ने की आवश्यकता है staff को लिखने के लिए समूह में/usr/local


+1 को इंगित करने के लिए, /usr/local/srcजबकि अन्य उत्तर केवल चर्चा करते हैं/usr/src
मैटस्टीनर्जन

जैसा कि "स्थानीय स्रोत कोड" का अर्थ है, सामान्य तौर पर इसका मतलब है कि वितरण के बजाय स्थानीय sysadmin द्वारा नियंत्रित किया जाता है/usr/local(सिद्धांत रूप में) के तहत सब कुछ वैसा ही । तो अनिवार्य रूप से इसका मतलब वही है जो आपने वर्णित किया है।
मैटस्टीनरजेन जूल

9

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

यदि आप उन्हें बाद में रखने की इच्छा रखते हैं , तो संदर्भ के लिए , " फाइलसिस्टम पदानुक्रम मानक " अनुशंसा करता है /usr/src। हालांकि, यह एक गाइड है एक कानून नहीं; और, यदि आप इस आदत में शामिल थे, तो एक गैर-लिनक्स सिस्टम पर उद्यम करें, आप इसका पालन करके परेशानी का कारण बन सकते हैं। उदाहरण के लिए, बीएसडी सिस्टम पर, बेस सिस्टम स्रोत वहां रखे जाते हैं और आप वास्तव में उन लोगों के साथ खिलवाड़ नहीं करना चाहते हैं। यहां तक ​​कि लिनक्स पर आप पैकेज प्रबंधकों द्वारा संग्रहीत किसी भी स्रोत के साथ मिलन का जोखिम उठा सकते हैं, जो वांछनीय नहीं है।

मैं /usr/srcसमग्र से बचने की सलाह दूंगा । वहाँ कुछ भी रखने का कोई स्पष्ट लाभ नहीं है, और संभावित जोखिम यदि आप इसके इच्छित अर्थ को भ्रमित करते हैं।


5

आप /usr/srcइस जगह को उचित ध्वनि के रूप में उपयोग कर सकते हैं और आरपीएम आधारित वितरण srpm संकुल की सामग्री को संग्रहीत करने के लिए इसका उपयोग करते हैं। लेकिन किसी अन्य जगह की तरह /opt, /usr/local, ~/srcअच्छा है


"आरपीएम आधारित वितरण srpm पैकेजों की सामग्री को संग्रहीत करने के लिए इसका उपयोग करते हैं।" यही कारण है कि आपको अपने स्वयं के गैर-डिस्ट्रो स्रोतों को स्टोर नहीं करना चाहिए और बल्कि / usr / लोकल का उपयोग करना चाहिए। - "यह सामान रखने के लिए एक अच्छी जगह होनी चाहिए, इन सभी फोर्कलिफ्ट के आसपास जो एक ही राय के लगते हैं ...."
रैकैंडबॉमन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.