ถ้าฉันทำการเปรียบเทียบกับการโฮสต์เว็บเซิร์ฟเวอร์ฉันจะบอกว่าข้อมูลของ git ควรอยู่ใน/var/git
ดังนั้นที่เก็บ git ของฉันจะอยู่ใน/var/git/myrepo
คำถาม : ถูกต้องหรือไม่
ถ้าฉันทำการเปรียบเทียบกับการโฮสต์เว็บเซิร์ฟเวอร์ฉันจะบอกว่าข้อมูลของ git ควรอยู่ใน/var/git
ดังนั้นที่เก็บ git ของฉันจะอยู่ใน/var/git/myrepo
คำถาม : ถูกต้องหรือไม่
คำตอบ:
ไม่มีคำตอบที่ถูกหรือผิดยกเว้นคำตอบที่ถูกต้องตามศาสนาส่วนบุคคลของคุณและเนื้อหาของhier(7)
manpage ในระบบของคุณ
ลินุกซ์ทั่วไปhier
manpage ; manpage BSD ทั่วไป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
และ repos ควรอยู่ในไดเรกทอรีย่อยของมัน หรือคุณสามารถใช้เช่น/srv/git
และตั้งค่าบริบทไฟล์ให้เท่ากัน:
semanage fcontext -a -e /var/www/git /srv/git
/home/git/
นี้อาจดูเหมือนบิตไม่เป็นทางการในตอนแรก แต่มันก็มีเหตุผลมากเป็นไดเรกทอรีนี้จะทำเพื่อคุณ (ที่มีสิทธิ์ที่ถูกต้อง) sudo useradd git
เมื่อคุณทำ คุณสามารถเปลี่ยนไปใช้ผู้ใช้ git cd
และรันทันที:
$ mkdir .ssh; chmod 700 .ssh
$ touch .ssh/authorized_keys; chmod 600 .ssh/authorized_keys
และวางกุญแจสาธารณะของคนรอบข้างของคุณลงในไฟล์ authorized_keys ที่เพิ่งสร้างขึ้น
หลังจากที่คุณgit init --bare
ทำโครงการ "url" ก็แค่ ... รอมัน ...
git@<server>:<project>
ตามที่ voretaq7 กล่าวว่าไม่มีคำตอบที่ถูกหรือผิดในเรื่องดังกล่าว อย่างไรก็ตามหากคุณต้องการติดตาม softs ดูเหมือนว่า softs ฐานข้อมูลจะเก็บข้อมูลไว้
/var/lib/soft
ตัวอย่างเช่นสำหรับ Postgresql 9.1 บนเดเบียนโฟลเดอร์คือ
/var/lib/postgresql/9.1/
ดังนั้นฉันจะเลือกคน
/var/lib/git
มันขึ้นอยู่กับคุณทั้งหมด อย่างดีที่สุดคุณควรใส่ git data dir ในพาร์ติชั่นแยกต่างหากหรือแม้กระทั่งดิสก์เพื่อให้การอัพเกรดระบบ ฯลฯ ง่ายขึ้นและแน่นอนคุณต้องแน่ใจว่ามีพื้นที่ว่างในดิสก์เพียงพอ
บน Arch Linux ของฉันฉันมี/srv/http
apache (ซึ่งเป็นค่าเริ่มต้นของระบบ) และฉันใช้สำหรับเซิร์ฟเวอร์ http.js ของ node.js ด้วย ในทำนองเดียวกันฉันตัดสินใจที่จะเพียงแค่ใส่ที่เก็บ Git /srv/git
ทั้งหมดใน
ฉันใช้ GitLab และ/srv/git
เป็นโฮมโฟลเดอร์สำหรับคอมไพล์ในกรณีนั้นด้วย
ในที่สุดมันก็ขึ้นอยู่กับคุณ ฉันพบว่าการผสานกับรูปแบบที่คล้ายกับบริการอื่น ๆ ใน distro ของคุณนั้นง่ายต่อการจดจำ
หากคุณใช้ส่วนหน้าในการคอมไพล์เพียงไปกับที่ใดก็ตามที่แพ็กเกจของการแจกจ่ายของคุณต้องการวาง สิ่งอื่นใดเพียงสร้างความไม่ลงรอยกันที่ไม่จำเป็น
อันดับแรกเกี่ยวกับคำแนะนำในการใช้ / srv คุณอยู่ภายใต้การสันนิษฐานว่าที่เก็บ git ทั้งหมดใช้สำหรับเว็บไซต์ อาจเป็นเรื่องจริงสำหรับคุณ แต่คุณอาจมีซอฟต์แวร์บางส่วนที่ไม่ใช่เว็บไซต์
ประการที่สองโดยการจัดเก็บที่เก็บรหัสของคุณนอก / var / www / html หรือ / srv / html คุณจะได้รับประโยชน์ที่ดีสองประการ คุณสามารถสร้างลิงก์สัญลักษณ์ลงใน repo ได้ทุกระดับทำให้ง่ายต่อการซ่อนไลบรารี่ของคุณ นอกจากนี้หากตำแหน่งที่เก็บของคุณเปลี่ยนไปคุณไม่จำเป็นต้องแก้ไขการกำหนดค่าโฮสต์เสมือนของคุณ แต่คุณเพียงแค่ปรับลิงก์สัญลักษณ์ของคุณ
ฉันใช้ / var / repo แต่ฉันคิดว่า / var / git ดีกว่าและจะใช้อีกนับจากนี้
เมื่อฉันดาวน์โหลด repos git เพื่อรักษาการกำหนดค่าเว็บไซต์ซึ่งฉันปรับใช้ฉันเก็บไว้
/ ข้อมูล / Repos / $ REPO_GROUP_OR_USER / $ REPO_NAME