Если я проведу аналогию с хостингом веб-сервера, я бы сказал, что данные git должны быть в /var/git
, поэтому мой репозиторий git будет в /var/git/myrepo
Q: Это правильное предположение?
Поместите его в каталог (или общую файловую систему) под /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
Здесь нет правильного или неправильного ответа, кроме того, который продиктован вашей личной религией и содержанием hier(7)
справочную страницу в вашей системе.
типичный Linux hier
справочная страница ; типичный BSD hier
справочная страница)
/var/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, на такую тему нет правильного или неправильного ответа. Однако, если вы хотите следить за софтами, кажется, что софт базы данных хранит свои данные в
/var/lib/soft
Например, для Postgresql 9.1 в debian папка
/var/lib/postgresql/9.1/
Поэтому я бы лично выбрал
/var/lib/git
Все зависит от вас. Однако оптимально разместить каталог данных git на отдельном разделе или даже на диске, чтобы упростить обновление системы и т. Д., И, конечно же, вы должны убедиться, что на диске достаточно свободного места.
На моем Arch Linux у меня есть /srv/http
для apache (который является системным по умолчанию), и я также использую его для своих HTTP-серверов node.js. Точно так же я решил просто поместить все репозитории git в /srv/git
.
Я использую GitLab, и /srv/git
в этом случае также является домашней папкой для git.
В конечном итоге решать только вам. Я обнаружил, что придерживаться формата, аналогичного другим сервисам в вашем дистрибутиве, легко запомнить.
Если вы используете какой-то внешний интерфейс для git, просто переходите туда, где пакет из вашего дистрибутива хочет их разместить. Все остальное просто создает ненужную несовместимость.
Во-первых, что касается предложения использовать / srv, вы предполагаете, что все репозитории git используются для веб-сайтов. Возможно, это верно для вас, но у вас может быть программа, которая не является веб-сайтом.
Во-вторых, сохраняя репозитории кода вне / var / www / html или / srv / html, вы получаете два приятных преимущества. Вы можете создавать символические ссылки в своем репо на любом уровне, что упрощает скрытие ваших библиотек. Кроме того, если местоположение вашего репозитория вообще изменится, вам не нужно изменять конфигурации виртуального хоста. Вместо этого вы просто настраиваете свои символические ссылки.
Я использовал / var / repo, но думаю, что / var / git лучше, и с этого момента буду использовать его.
Когда я загружаю репозитории git, чтобы поддерживать конфигурации сайта, которые затем развертываю, я сохраняю их в
/ data / repos / $ REPO_GROUP_OR_USER / $ REPO_NAME