78 votes

Quel est l'endroit conventionnel pour stocker les dépôts git dans une arborescence du système de fichiers linux ?

Si je fais une analogie avec l'hébergement d'un serveur web, je dirais que les données de git devraient se trouver dans /var/git Ainsi, mon dépôt git se trouve à l'adresse suivante /var/git/myrepo

Q : Est-ce que c'est le bon choix ?

37voto

Michael Hampton Points 232226

Placez-la dans un répertoire (ou un système de fichiers partagé) sous /srv . C'est à ça que ça sert.

El /srv est destiné à les données spécifiques au site desservi par le système . De la norme :

L'objectif principal de cette spécification est de permettre aux utilisateurs de trouver le fichier l'emplacement des fichiers de données pour un service particulier, et de sorte que les services qui nécessitent un seul arbre pour les données en lecture seule, les données en écriture et scripts (tels que cgi scripts) puissent être raisonnablement placés. Les données qui n'intéressent qu'un utilisateur spécifique doivent être placées dans son répertoire de cet utilisateur.

La méthode utilisée pour nommer les sous-répertoires de l'application /srv n'est pas spécifié comme il n'y a actuellement aucun consensus sur la manière de procéder. Une méthode pour structurer les données sous /srv se fait par protocole, par exemple ftp , rsync , www , et cvs . Sur les grands systèmes, il peut être utile de structurer /srv par contexte administratif, comme /srv/physics/www , /srv/compsci/cvs , etc. Cette configuration sera différente d'un hôte à l'autre. Par conséquent, aucun programme ne devrait s'appuyer sur une structure de sous-répertoire spécifique de /srv existant ou données nécessairement stockées dans /srv . Cependant /srv devrait toujours exister sur les systèmes conformes au FHS et devraient être utilisés comme pour ces données.

Les distributions doivent veiller à ne pas supprimer les fichiers placés localement dans ces répertoires sans l'autorisation de l'administrateur. ces répertoires sans l'autorisation de l'administrateur.


Sur un système SELinux, le répertoire par défaut est le suivant /var/www/git et les dépôts doivent être dans des sous-répertoires de ceux-ci. Ou bien, vous pouvez utiliser, par exemple, les éléments suivants /srv/git et définir le contexte du fichier pour qu'il soit équivalent :

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

36voto

voretaq7 Points 78924

Il n'y a pas de bonne ou de mauvaise réponse ici, sauf celle dictée par votre propre religion personnelle et le contenu de la hier(7) sur votre système.

Linux typique hier page d'accueil ; BSD typique hier page d'accueil )

/var/git/* me semble raisonnable, personnellement. C'est là que je garde le mien.

7voto

Kushal Points 11
/home/git/

Cela peut sembler peu conventionnel au premier abord mais c'est très raisonnable car ce répertoire est créé pour vous (avec les bonnes permissions) lorsque vous faites sudo useradd git . Vous pouvez simplement passer à l'utilisateur git, cd et courir immédiatement :

$ mkdir .ssh; chmod 700 .ssh
$ touch .ssh/authorized_keys; chmod 600 .ssh/authorized_keys

et mettez les clés publiques de vos pairs dans le fichier authorized_keys qui vient d'être créé.

Après vous git init --bare votre projet, l'"url" est alors juste... attendez...

git@<server>:<project>

2voto

Raoul Points 1113

Comme l'a dit voretaq7, il n'y a pas de bonne ou de mauvaise réponse sur un tel sujet. Cependant, si vous voulez suivre l'évolution des softs, il semble que les softs de base de données stockent leurs données en

/var/lib/soft

Par exemple, pour Postgresql 9.1 sur debian, le dossier est le suivant

/var/lib/postgresql/9.1/

Je choisirais donc personnellement

/var/lib/git

2voto

drecute Points 161

Sur mon Arch Linux, j'ai /srv/http pour apache (qui est le système par défaut) et je l'utilise aussi pour mes serveurs http node.js. De même, j'ai décidé de mettre tous les dépôts git dans le répertoire /srv/git .

J'utilise GitLab, et /srv/git est le dossier de base de git dans ce cas également.

En fin de compte, c'est vous qui décidez. J'ai trouvé que s'en tenir à un format similaire à celui des autres services de votre distro est facile à retenir.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X