Wenn ich eine Analogie mit dem Hosting eines Webservers mache, würde ich sagen, dass die Daten von Git in sein sollten /var/git
, also würde mein Git-Repository in sein/var/git/myrepo
F : Ist das die richtige Vermutung?
Wenn ich eine Analogie mit dem Hosting eines Webservers mache, würde ich sagen, dass die Daten von Git in sein sollten /var/git
, also würde mein Git-Repository in sein/var/git/myrepo
F : Ist das die richtige Vermutung?
Antworten:
Hier gibt es keine richtige oder falsche Antwort, außer der, die von Ihrer persönlichen Religion und dem Inhalt der hier(7)
Manpage auf Ihrem System vorgegeben wird .
typische Linux- hier
Manpage ; typische BSD- hier
Manpage )
/var/git/*
scheint mir persönlich vernünftig. Dort behalte ich meine.
Legen Sie es in ein Verzeichnis (oder in ein freigegebenes Dateisystem) unter /srv
. Dafür ist es da.
Das /srv
Verzeichnis ist für standortspezifische Daten vorgesehen, die vom System bereitgestellt werden . Aus dem Standard:
Der Hauptzweck dieser Angabe besteht darin, dass Benutzer den Speicherort der Datendateien für einen bestimmten Dienst finden und dass Dienste, die einen einzigen Baum für schreibgeschützte Daten, beschreibbare Daten und Skripte (z. B. CGI-Skripte) benötigen, sinnvoll platziert werden können. Daten, die nur für einen bestimmten Benutzer von Interesse sind, sollten im Ausgangsverzeichnis dieses Benutzers abgelegt werden.
Die Methode zur Benennung der Unterverzeichnisse von
/srv
ist nicht festgelegt, da derzeit kein Konsens darüber besteht, wie dies erfolgen soll. Eine Methode zur Strukturierung von Daten/srv
ist die Protokollierung, z.ftp
,rsync
,www
, Undcvs
. Bei großen Systemen kann es nützlich sein , strukturieren/srv
von administrativem Kontext, wie/srv/physics/www
,/srv/compsci/cvs
etc. Diese Einstellung von Hosts unterscheiden zu hosten. Daher sollte sich kein Programm auf eine bestimmte Unterverzeichnisstruktur von/srv
vorhandenen oder notwendigerweise in gespeicherten Daten stützen/srv
. Sollte/srv
jedoch auf FHS-konformen Systemen immer vorhanden sein und sollte als Standardspeicherort für solche Daten verwendet werden.Distributionen müssen darauf achten, lokal platzierte Dateien in diesen Verzeichnissen nicht ohne Administratorrechte zu entfernen.
Auf einem SELinux-fähigen System lautet das Standardverzeichnis /var/www/git
und Repos sollten sich in dessen Unterverzeichnissen befinden. Oder Sie können z. B. /srv/git
den Dateikontext so festlegen, dass er äquivalent ist:
semanage fcontext -a -e /var/www/git /srv/git
/home/git/
Dies mag auf den ersten Blick etwas unkonventionell erscheinen, ist aber sehr vernünftig, da dieses Verzeichnis für Sie erstellt wurde (mit den richtigen Berechtigungen) sudo useradd git
. Sie können einfach zum Benutzer git wechseln cd
und sofort ausführen:
$ mkdir .ssh; chmod 700 .ssh
$ touch .ssh/authorized_keys; chmod 600 .ssh/authorized_keys
und legen Sie die öffentlichen Schlüssel Ihrer Kollegen in die soeben erstellte Datei authorized_keys.
Nachdem Sie git init --bare
Ihr Projekt, die "URL" ist dann einfach ... warten Sie darauf ...
git@<server>:<project>
Wie voretaq7 bereits sagte, gibt es zu einem solchen Thema keine richtige oder falsche Antwort. Wenn Sie jedoch Softs folgen möchten, scheinen Datenbank-Softs ihre Daten in zu speichern
/var/lib/soft
Zum Beispiel ist für Postgresql 9.1 unter Debian der Ordner
/var/lib/postgresql/9.1/
Also würde ich persönlich wählen
/var/lib/git
Es liegt ganz bei Ihnen. Optimalerweise sollten Sie das Git-Datenverzeichnis jedoch auf einer separaten Partition oder sogar auf einer Festplatte ablegen, um Systemaktualisierungen usw. zu vereinfachen, und natürlich müssen Sie sicherstellen, dass genügend Festplattenspeicher verfügbar ist.
Auf meinem Arch Linux habe ich /srv/http
für Apache (das ist die Standardeinstellung des Systems) und ich benutze es auch für meine node.js http-Server. Ebenso habe ich beschlossen, nur alle Git-Repositorys in zu setzen /srv/git
.
Ich benutze GitLab und /srv/git
ist in diesem Fall auch der Home-Ordner für Git.
Letztendlich liegt es an Ihnen. Ich fand, dass das Festhalten an einem Format, das anderen Diensten in Ihrer Distribution ähnelt, leicht zu merken ist.
Wenn Sie ein Frontend zum Gittern verwenden, gehen Sie einfach dahin, wo das von Ihrer Distribution gepackte sie platzieren möchte. Alles andere schafft nur unnötige Inkompatibilitäten.
Erstens, in Bezug auf den Vorschlag, / srv zu verwenden, gehen Sie davon aus, dass alle Git-Repositorys für Websites verwendet werden. Es mag für Sie zutreffen, aber Sie könnten eine Software haben, die keine Website ist.
Zweitens erhalten Sie zwei Vorteile, wenn Sie Ihre Code-Repositorys außerhalb von / var / www / html oder / srv / html speichern. Sie können in Ihrem Repo auf jeder Ebene symbolische Links erstellen, um das Ausblenden Ihrer Bibliotheken zu vereinfachen. Wenn sich der Speicherort Ihres Repositorys überhaupt ändert, müssen Sie auch Ihre virtuellen Hostkonfigurationen nicht ändern. Stattdessen passen Sie einfach Ihre symbolischen Links an.
Ich habe / var / repo verwendet, aber ich denke, / var / git ist besser und werde es von nun an verwenden.