एक लिनक्स फाइल सिस्टम ट्री में गिट रिपॉजिटरी को स्टोर करने के लिए पारंपरिक स्थान कहां है?


58

यदि मैं एक वेब सर्वर की मेजबानी के साथ एक सादृश्य बनाता हूं, तो मैं कहूंगा कि git का डेटा अंदर होना चाहिए /var/git, इसलिए मेरा git रिपॉजिटरी में होगा/var/git/myrepo

प्रश्न : क्या यह सही अनुमान है?

जवाबों:


31

यहां कोई सही या गलत जवाब नहीं है, सिवाय आपके अपने व्यक्तिगत धर्म और hier(7)आपके सिस्टम पर मैनपेज की सामग्री के ।

विशिष्ट लिनक्स hierमैनपेज ; विशिष्ट बीएसडी hierमैनपेज )

/var/git/*मुझे व्यक्तिगत रूप से उचित लगता है। यहीं से मेरा वश चलता है।


3
इसी तरह, आर्क लिनक्स अपाचे के फ़ोल्डर में / srv / http (बजाय / var / www की तरह कुछ अन्य distros) है, इसलिए मैं अपना git सामान / srv / git में रखता हूं।
त्रसुक्र

कहीं न कहीं / var / उचित लगता है, लेकिन नीचे डेनिस R का उत्तर भी देखें: serverfault.com/a/433584/45819 - वह इसे अच्छे कारणों के साथ / var / lib / git में डालता है
mit

30

इसे एक निर्देशिका (या साझा फ़ाइल सिस्टम) के अंतर्गत रखें /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

5
/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>

"प्रो गिट" पुस्तक में लगभग अनुशंसित जैसे: git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server
exic

1

जैसा कि voretaq7 ने कहा, इस तरह के विषय पर कोई सही या गलत जवाब नहीं है। हालाँकि, यदि आप सोफ़्ट का अनुसरण करना चाहते हैं, तो ऐसा लगता है कि डेटाबेस सोफ़्ट अपने डेटा को स्टोर करता है

/var/lib/soft

उदाहरण के लिए, Postgresql 9.1 के लिए debian फ़ोल्डर है

/var/lib/postgresql/9.1/

इसलिए मैं व्यक्तित्व का चयन करूंगा

/var/lib/git

1

यह पूरी तरह से आप पर निर्भर है। वैकल्पिक रूप से, हालांकि, आपको सिस्टम अपग्रेड आदि को आसान बनाने के लिए एक अलग पार्टीशन या डिस्क पर git data dir रखना चाहिए और निश्चित रूप से, आपको यह सुनिश्चित करना होगा कि पर्याप्त डिस्क स्थान उपलब्ध है।


1

मेरे आर्क लिनक्स पर मेरे पास /srv/httpअपाचे (जो सिस्टम डिफ़ॉल्ट है) के लिए है और मैं इसे अपने नोड के लिए उपयोग करता हूं। जेएस http सर्वर भी। इसी तरह मैंने सभी git रिपॉजिटरी में बस डालने का फैसला किया /srv/git

मैं GitLab का उपयोग करता हूं, और /srv/gitउस मामले में भी गिट के लिए होम फ़ोल्डर है।

अंततः, यह आपके ऊपर है। मैंने पाया कि आपके डिस्ट्रो में अन्य सेवाओं के समान एक प्रारूप से चिपके रहना आसान है।


0

यदि आप उपयोग करने के लिए कुछ दृश्यपटल का उपयोग करते हैं, तो बस जहाँ भी आपके वितरण द्वारा पैक किया गया है, उन्हें रखना चाहते हैं। और कुछ भी सिर्फ अनावश्यक असंगतता पैदा कर रहा है।


1 / मैं git के लिए एक फ्रंटएंड का उपयोग नहीं कर रहा हूँ 2 / git doens't git रिपॉजिटरी को रखने के लिए एक पुनर्संयोजन के साथ नहीं आता है ... कोई भी फ़ोल्डर जहाँ आप git init करते हैं वह एक git रिपॉजिटरी है।
शमूएल रॉसिल

1 / सामने के अंत तक मुझे लगता है कि रेपो की सेवा करने वाला गिट सर्वर होगा। 2 / ऐसा कोई भी सर्वर, भले ही केवल HTTP सर्वर का उपयोग किया गया हो, डिफ़ॉल्ट स्थान होगा। निश्चित रूप से हम होस्टिंग के लिए स्थान के बारे में बात कर रहे हैं, जब आप कोड के साथ काम करते हैं। आपकी परियोजना के अंदर .it ज्यादातर होता है।
hultqvist

0

सबसे पहले, उपयोग / srv करने के सुझाव के बारे में, आप इस धारणा के तहत हैं कि सभी git रिपॉजिटरी का उपयोग वेबसाइटों के लिए किया जाता है। यह आपके लिए सही हो सकता है, लेकिन आपके पास सॉफ़्टवेयर का एक टुकड़ा हो सकता है जो वेबसाइट नहीं है।

दूसरा, / var / www / html या / srv / html के बाहर अपने कोड रिपॉजिटरी को स्टोर करके, आपको दो अच्छे लाभ मिलते हैं। आप किसी भी स्तर पर अपने रेपो में प्रतीकात्मक लिंक बना सकते हैं, जिससे आपके पुस्तकालयों को छिपाना आसान हो जाता है। इसके अलावा, यदि आपकी रिपॉजिटरी का स्थान बिल्कुल बदल जाता है, तो आपको अपने वर्चुअल होस्ट कॉन्फ़िगरेशन को संशोधित करने की आवश्यकता नहीं है। इसके बजाय आप सिर्फ अपने प्रतीकात्मक लिंक को समायोजित करें।

मैं / var / repo का उपयोग कर रहा था, लेकिन मुझे लगता है कि / var / git बेहतर है, और अब से इसका उपयोग करना होगा।


0

जब मैं साइट कॉन्फ़िगरेशन को बनाए रखने के लिए git repos डाउनलोड कर रहा हूं, जिसे मैं तब परिनियोजित करता हूं, जब मैं उन्हें संग्रहीत करता हूं

/ डेटा / रेपोस / $ REPO_GROUP_OR_USER / $ REPO_NAME

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