यदि मैं एक वेब सर्वर की मेजबानी के साथ एक सादृश्य बनाता हूं, तो मैं कहूंगा कि git का डेटा अंदर होना चाहिए /var/git
, इसलिए मेरा git रिपॉजिटरी में होगा/var/git/myrepo
प्रश्न : क्या यह सही अनुमान है?
यदि मैं एक वेब सर्वर की मेजबानी के साथ एक सादृश्य बनाता हूं, तो मैं कहूंगा कि git का डेटा अंदर होना चाहिए /var/git
, इसलिए मेरा git रिपॉजिटरी में होगा/var/git/myrepo
प्रश्न : क्या यह सही अनुमान है?
जवाबों:
यहां कोई सही या गलत जवाब नहीं है, सिवाय आपके अपने व्यक्तिगत धर्म और hier(7)
आपके सिस्टम पर मैनपेज की सामग्री के ।
विशिष्ट लिनक्स hier
मैनपेज ; विशिष्ट बीएसडी hier
मैनपेज )
/var/git/*
मुझे व्यक्तिगत रूप से उचित लगता है। यहीं से मेरा वश चलता है।
इसे एक निर्देशिका (या साझा फ़ाइल सिस्टम) के अंतर्गत रखें /srv
। यह वही है जो इसके लिए है।
/srv
निर्देशिका के लिए करना है साइट-विशिष्ट डेटा प्रणाली द्वारा कार्य किया । मानक से:
इसे निर्दिष्ट करने का मुख्य उद्देश्य यह है कि उपयोगकर्ताओं को विशेष सेवा के लिए डेटा फ़ाइलों का स्थान मिल सकता है, और इसलिए कि जिन सेवाओं के लिए आसानी से डेटा, लेखन डेटा और स्क्रिप्ट (जैसे कि cgi स्क्रिप्ट) के लिए एक ही पेड़ की आवश्यकता होती है, उन्हें यथोचित रूप से रखा जा सकता है। डेटा जो केवल एक विशिष्ट उपयोगकर्ता के लिए रुचि रखता है, उस उपयोगकर्ता की होम निर्देशिका में जाना चाहिए।
उपनिर्देशिकाओं के नाम के लिए प्रयुक्त कार्यप्रणाली
/srv
अनिर्दिष्ट है क्योंकि वर्तमान में इस पर कोई आम सहमति नहीं है कि यह कैसे किया जाना चाहिए। के तहत डेटा की संरचना के लिए एक विधि/srv
प्रोटोकॉल द्वारा है, जैसे।ftp
,rsync
,www
, औरcvs
। बड़े सिस्टम पर यह संरचना करने के लिए उपयोगी हो सकता/srv
है, जैसे प्रशासनिक संदर्भ द्वारा/srv/physics/www
,/srv/compsci/cvs
आदि इस सेटअप की मेजबानी के लिए मेजबान से भिन्न होगी। इसलिए, किसी भी कार्यक्रम को/srv
मौजूदा या डेटा की एक विशिष्ट उपनिर्देशिका संरचना पर भरोसा नहीं करना चाहिए जो आवश्यक रूप से संग्रहीत किया जा रहा है/srv
। हालांकि,/srv
हमेशा FHS आज्ञाकारी प्रणालियों पर मौजूद होना चाहिए और इस तरह के डेटा के लिए डिफ़ॉल्ट स्थान के रूप में उपयोग किया जाना चाहिए।वितरण को इस बात का ध्यान रखना चाहिए कि प्रशासक की अनुमति के बिना इन निर्देशिकाओं में स्थानीय रूप से रखी गई फाइलों को न हटाया जाए।
एक SELinux- सक्षम प्रणाली पर, डिफ़ॉल्ट निर्देशिका है /var/www/git
, और रिपॉजिट उप-सीमाओं में होनी चाहिए। या, आप /srv/git
फ़ाइल संदर्भ का उपयोग कर सकते हैं, उदाहरण के लिए और समतुल्य होने के लिए सेट करें:
semanage fcontext -a -e /var/www/git /srv/git
/home/git/
यह पहली बार थोड़ा अपरंपरागत लग सकता है लेकिन यह बहुत ही उचित है क्योंकि यह निर्देशिका आपके लिए (सही अनुमति के साथ) जब आप करते हैं sudo useradd git
। आप बस गिट उपयोगकर्ता पर स्विच कर सकते हैं, cd
और तुरंत चला सकते हैं:
$ mkdir .ssh; chmod 700 .ssh
$ touch .ssh/authorized_keys; chmod 600 .ssh/authorized_keys
और अपने साथियों की सार्वजनिक कुंजियों को अभी बनाई गई अधिकृत_की फ़ाइल में डालें।
git init --bare
आपके प्रोजेक्ट के बाद , "url" तो बस ... इसके लिए प्रतीक्षा करें ...
git@<server>:<project>
जैसा कि voretaq7 ने कहा, इस तरह के विषय पर कोई सही या गलत जवाब नहीं है। हालाँकि, यदि आप सोफ़्ट का अनुसरण करना चाहते हैं, तो ऐसा लगता है कि डेटाबेस सोफ़्ट अपने डेटा को स्टोर करता है
/var/lib/soft
उदाहरण के लिए, Postgresql 9.1 के लिए debian फ़ोल्डर है
/var/lib/postgresql/9.1/
इसलिए मैं व्यक्तित्व का चयन करूंगा
/var/lib/git
मेरे आर्क लिनक्स पर मेरे पास /srv/http
अपाचे (जो सिस्टम डिफ़ॉल्ट है) के लिए है और मैं इसे अपने नोड के लिए उपयोग करता हूं। जेएस http सर्वर भी। इसी तरह मैंने सभी git रिपॉजिटरी में बस डालने का फैसला किया /srv/git
।
मैं GitLab का उपयोग करता हूं, और /srv/git
उस मामले में भी गिट के लिए होम फ़ोल्डर है।
अंततः, यह आपके ऊपर है। मैंने पाया कि आपके डिस्ट्रो में अन्य सेवाओं के समान एक प्रारूप से चिपके रहना आसान है।
यदि आप उपयोग करने के लिए कुछ दृश्यपटल का उपयोग करते हैं, तो बस जहाँ भी आपके वितरण द्वारा पैक किया गया है, उन्हें रखना चाहते हैं। और कुछ भी सिर्फ अनावश्यक असंगतता पैदा कर रहा है।
सबसे पहले, उपयोग / srv करने के सुझाव के बारे में, आप इस धारणा के तहत हैं कि सभी git रिपॉजिटरी का उपयोग वेबसाइटों के लिए किया जाता है। यह आपके लिए सही हो सकता है, लेकिन आपके पास सॉफ़्टवेयर का एक टुकड़ा हो सकता है जो वेबसाइट नहीं है।
दूसरा, / var / www / html या / srv / html के बाहर अपने कोड रिपॉजिटरी को स्टोर करके, आपको दो अच्छे लाभ मिलते हैं। आप किसी भी स्तर पर अपने रेपो में प्रतीकात्मक लिंक बना सकते हैं, जिससे आपके पुस्तकालयों को छिपाना आसान हो जाता है। इसके अलावा, यदि आपकी रिपॉजिटरी का स्थान बिल्कुल बदल जाता है, तो आपको अपने वर्चुअल होस्ट कॉन्फ़िगरेशन को संशोधित करने की आवश्यकता नहीं है। इसके बजाय आप सिर्फ अपने प्रतीकात्मक लिंक को समायोजित करें।
मैं / var / repo का उपयोग कर रहा था, लेकिन मुझे लगता है कि / var / git बेहतर है, और अब से इसका उपयोग करना होगा।