Назад | Перейти на главную страницу

Где обычное место для хранения репозиториев git в дереве файловой системы Linux?

Если я проведу аналогию с хостингом веб-сервера, я бы сказал, что данные 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