Если я проведу аналогию с хостингом веб-сервера, я бы сказал, что данные git должны быть в нем /var/git
, поэтому мой репозиторий git будет в/var/git/myrepo
Q : Это правильное предположение?
Если я проведу аналогию с хостингом веб-сервера, я бы сказал, что данные git должны быть в нем /var/git
, поэтому мой репозиторий git будет в/var/git/myrepo
Q : Это правильное предположение?
Ответы:
Здесь нет правильного или неправильного ответа, кроме того, который продиктован вашей личной религией и содержанием hier(7)
справочной страницы в вашей системе.
типичная hier
справочная страница Linux ; типичная hier
страница BSD )
/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
, а репозитории должны находиться в его подкаталогах. Или вы можете использовать, например, /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
и поместите открытые ключи ваших пиров в только что созданный файл author_keys.
После того, как git init --bare
ваш проект, URL-адрес просто ... ждать его ...
git@<server>:<project>
Как сказал voretaq7, нет правильного или неправильного ответа на эту тему. Однако, если вы хотите следовать за софтами, кажется, что софты базы данных хранят свои данные в
/var/lib/soft
Например, для Postgresql 9.1 в Debian папка
/var/lib/postgresql/9.1/
Так что я бы лично выбрал
/var/lib/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 лучше, и теперь буду использовать это.