Де умовне місце для зберігання git-сховищ у дереві файлової системи Linux?


58

Якщо я зроблю аналогію з хостингом веб-сервера, я б сказав, що дані git повинні бути /var/git, тому моє сховище git буде/var/git/myrepo

З : Це правильна здогадка?

Відповіді:


31

Тут немає правильної чи неправильної відповіді, крім тієї, яку диктує ваша особиста релігія та вміст сторінки сторінки hier(7)у вашій системі.

Типовий Linux hierсторінка керівництво ; Типова BSD hierсторінка керівництва )

/var/git/*особисто мені здається розумним. Ось де я зберігаю своє.


3
Аналогічно, у Arch Linux папці apache є / srv / http (замість / var / www, як і деякі інші дистрибутиви), тому я поміщаю свої git речі в / srv / git.
trusktr

Десь під / var / здається розумним, але дивіться також відповідь Дениса Р. нижче: 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, а 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

і помістіть відкриті ключі ваших однолітків у щойно створений файл дозволених ключів.

Після того, як ви подали 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, на цю тему немає правильної чи неправильної відповіді. Однак, якщо ви хочете стежити за софт, здається, що софт бази даних зберігає свої дані в

/var/lib/soft

Наприклад, для Postgresql 9.1 на debian папка є

/var/lib/postgresql/9.1/

Тож я б особисто обрав

/var/lib/git

1

Це повністю залежить від вас. Оптимально, однак, ви повинні покласти дані git data dir на окремий розділ або навіть диск, щоб полегшити оновлення системи тощо.


1

У моєму Arch Linux у мене /srv/httpє апарат apache (який є системним за замовчуванням), і я також його використовую для своїх http-серверів node.js. Так само я вирішив просто помістити всі сховища git /srv/git.

Я використовую GitLab, і /srv/gitв цьому випадку є домашньою папкою для git.

Зрештою, це залежить від вас. Я виявив, що дотримуватися формату, подібного до інших служб у вашому дистрибутиві, легко запам'ятовується.


0

Якщо ви використовуєте деякий фронтенд для git, просто перейдіть туди, куди той, який упакований вашим розповсюдженням, хоче розмістити їх. Все інше - це лише створення непотрібних несумісностей.


1 / Я не використовую frontend для git 2 / Git doens не поставляється з рекомендацією щодо того, де розміщувати сховища git ... будь-яка папка, де ви робите git init, є сховищем git.
Самуель Россіль

1 / На передньому кінці я б припустив сервер git, що обслуговує репости. 2 / будь-який такий сервер, навіть якщо використовується тільки сервер HTTP, мав би місце за замовчуванням. Звичайно, ми говоримо про місце для хостингу, коли ви працюєте з кодом .git здебільшого всередині проекту.
hultqvist

0

По-перше, щодо пропозиції щодо використання / srv, ви припускаєте, що всі сховища git використовуються для веб-сайтів. Це може бути правдою для вас, але ви можете мати програмне забезпечення, яке не є веб-сайтом.

По-друге, зберігаючи свої сховища коду поза / var / www / html або / srv / html, ви отримуєте дві приємні переваги. Ви можете створювати символічні посилання в репо-рене на будь-якому рівні, полегшуючи приховувати свої бібліотеки. Крім того, якщо місцезнаходження вашого репозиторію взагалі змінюється, вам не доведеться змінювати конфігурації віртуального хоста. Натомість ви просто налаштовуєте свої символічні посилання.

Я використовував / var / repo, але я вважаю, що / var / git краще, і з цього моменту буде використовувати це.


0

Коли я завантажую git repos, щоб підтримувати конфігурації сайту, в яких я потім розгортаю, я зберігаю їх

/ data / repos / $ REPO_GROUP_OR_USER / $ REPO_NAME

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.