สถานที่ทั่วไปในการจัดเก็บที่เก็บคอมไพล์ในแผนผังระบบไฟล์ linux อยู่ที่ไหน


58

ถ้าฉันทำการเปรียบเทียบกับการโฮสต์เว็บเซิร์ฟเวอร์ฉันจะบอกว่าข้อมูลของ git ควรอยู่ใน/var/gitดังนั้นที่เก็บ git ของฉันจะอยู่ใน/var/git/myrepo

คำถาม : ถูกต้องหรือไม่

คำตอบ:


31

ไม่มีคำตอบที่ถูกหรือผิดยกเว้นคำตอบที่ถูกต้องตามศาสนาส่วนบุคคลของคุณและเนื้อหาของhier(7)manpage ในระบบของคุณ

ลินุกซ์ทั่วไปhiermanpage ; manpage BSD ทั่วไปhier )

/var/git/*ดูเหมือนว่าสมเหตุสมผลสำหรับฉันเป็นการส่วนตัว นั่นคือสิ่งที่ฉันเก็บไว้


3
ในทำนองเดียวกันในโฟลเดอร์ Arch Arch apache คือ / srv / http (แทนที่จะเป็น / var / www เหมือน distros อื่น ๆ ) ดังนั้นฉันจึงใส่ git ใน / srv / git
trusktr

ที่ไหนสักแห่งภายใต้ / var / ดูเหมือนว่าเหมาะสม แต่ยังเห็นคำตอบของเดนิสอาร์ด้านล่าง: serverfault.com/a/433584/45819 - เขาทำให้มันเป็น / var / lib / คอมไพล์ด้วยเหตุผลที่ดี
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และ repos ควรอยู่ในไดเรกทอรีย่อยของมัน หรือคุณสามารถใช้เช่น/srv/gitและตั้งค่าบริบทไฟล์ให้เท่ากัน:

semanage fcontext -a -e /var/www/git /srv/git

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

เกือบเหมือนที่แนะนำไว้ในหนังสือ "Pro Git": git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server
exic

1

ตามที่ voretaq7 กล่าวว่าไม่มีคำตอบที่ถูกหรือผิดในเรื่องดังกล่าว อย่างไรก็ตามหากคุณต้องการติดตาม softs ดูเหมือนว่า softs ฐานข้อมูลจะเก็บข้อมูลไว้

/var/lib/soft

ตัวอย่างเช่นสำหรับ Postgresql 9.1 บนเดเบียนโฟลเดอร์คือ

/var/lib/postgresql/9.1/

ดังนั้นฉันจะเลือกคน

/var/lib/git

1

มันขึ้นอยู่กับคุณทั้งหมด อย่างดีที่สุดคุณควรใส่ git data dir ในพาร์ติชั่นแยกต่างหากหรือแม้กระทั่งดิสก์เพื่อให้การอัพเกรดระบบ ฯลฯ ง่ายขึ้นและแน่นอนคุณต้องแน่ใจว่ามีพื้นที่ว่างในดิสก์เพียงพอ


1

บน Arch Linux ของฉันฉันมี/srv/httpapache (ซึ่งเป็นค่าเริ่มต้นของระบบ) และฉันใช้สำหรับเซิร์ฟเวอร์ http.js ของ node.js ด้วย ในทำนองเดียวกันฉันตัดสินใจที่จะเพียงแค่ใส่ที่เก็บ Git /srv/gitทั้งหมดใน

ฉันใช้ GitLab และ/srv/gitเป็นโฮมโฟลเดอร์สำหรับคอมไพล์ในกรณีนั้นด้วย

ในที่สุดมันก็ขึ้นอยู่กับคุณ ฉันพบว่าการผสานกับรูปแบบที่คล้ายกับบริการอื่น ๆ ใน distro ของคุณนั้นง่ายต่อการจดจำ


0

หากคุณใช้ส่วนหน้าในการคอมไพล์เพียงไปกับที่ใดก็ตามที่แพ็กเกจของการแจกจ่ายของคุณต้องการวาง สิ่งอื่นใดเพียงสร้างความไม่ลงรอยกันที่ไม่จำเป็น


1 / ฉันไม่ได้ใช้ส่วนหน้าในการคอมไพล์ 2 / Git ไม่ได้มาพร้อมกับคำแนะนำเกี่ยวกับตำแหน่งที่จะวางที่เก็บคอมไพล์ ... โฟลเดอร์ใด ๆ ที่คุณทำ git init เป็นที่เก็บคอมไพล์
Samuel Rossille

1 / โดยส่วนหน้าฉันจะถือว่าเซิร์ฟเวอร์ git ที่ให้บริการ repos 2 / เซิร์ฟเวอร์ใด ๆ แม้ว่าจะใช้เซิร์ฟเวอร์ HTTP เท่านั้นจะมีตำแหน่งเริ่มต้น แน่นอนว่าเรากำลังพูดถึงที่ตั้งสำหรับการโฮสต์เมื่อคุณทำงานกับรหัสส่วนใหญ่เป็น. git ภายในโครงการ
hultqvist

0

อันดับแรกเกี่ยวกับคำแนะนำในการใช้ / srv คุณอยู่ภายใต้การสันนิษฐานว่าที่เก็บ git ทั้งหมดใช้สำหรับเว็บไซต์ อาจเป็นเรื่องจริงสำหรับคุณ แต่คุณอาจมีซอฟต์แวร์บางส่วนที่ไม่ใช่เว็บไซต์

ประการที่สองโดยการจัดเก็บที่เก็บรหัสของคุณนอก / var / www / html หรือ / srv / html คุณจะได้รับประโยชน์ที่ดีสองประการ คุณสามารถสร้างลิงก์สัญลักษณ์ลงใน repo ได้ทุกระดับทำให้ง่ายต่อการซ่อนไลบรารี่ของคุณ นอกจากนี้หากตำแหน่งที่เก็บของคุณเปลี่ยนไปคุณไม่จำเป็นต้องแก้ไขการกำหนดค่าโฮสต์เสมือนของคุณ แต่คุณเพียงแค่ปรับลิงก์สัญลักษณ์ของคุณ

ฉันใช้ / var / repo แต่ฉันคิดว่า / var / git ดีกว่าและจะใช้อีกนับจากนี้


0

เมื่อฉันดาวน์โหลด repos git เพื่อรักษาการกำหนดค่าเว็บไซต์ซึ่งฉันปรับใช้ฉันเก็บไว้

/ ข้อมูล / Repos / $ REPO_GROUP_OR_USER / $ REPO_NAME

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.