Vraag Waar is de conventionele plaats om git-archieven op te slaan in een linux-bestandssysteemboom?


Als ik een analogie maak met de hosting van een webserver, zou ik zeggen dat de gegevens van git in het spel zouden moeten zijn /var/git, dus mijn git repository zou binnen zijn /var/git/myrepo

Q: Is dat de juiste gok?


53
2017-09-28 14:07


oorsprong




antwoorden:


Er is hier geen goed of fout antwoord, behalve de vraag die wordt gedicteerd door uw eigen persoonlijke religie en de inhoud van de hier(7) manpage op uw systeem.

typische Linux hier manpage ; typische BSD hier manpage)

/var/git/* lijkt mij persoonlijk redelijk. Dat is waar ik de mijne bewaar.


30
2017-09-28 14:32



Op dezelfde manier is in Arch Linux de map van apache / srv / http (in plaats van / var / www zoals sommige andere distro's) dus ik stop mijn git-spul in / srv / git. - trusktr
Ergens onder / var / lijkt redelijk, maar zie ook het antwoord van Denis R hieronder: serverfault.com/a/433584/45819 - hij plaatst het in / var / lib / git met goede redenen - mit


Plaats het in een directory (of gedeeld bestandssysteem) onder /srv. Dit is waar het voor is.

De /srv map is bedoeld voor locatiespecifieke gegevens die door het systeem worden gebruikt. Van de standaard:

Dit hoofddoel van het opgeven van dit is zodat gebruikers het kunnen vinden   locatie van de gegevensbestanden voor een bepaalde service, en zo   diensten die een enkele boom vereisen voor alleen lezen, beschrijfbare gegevens   en scripts (zoals cgi-scripts) kunnen redelijk worden geplaatst. Gegevens dat   is alleen van belang voor een specifieke gebruiker die thuis zou moeten gaan   directory.

De methode die wordt gebruikt om submappen van te noemen /srv is niet gespecificeerd als   er is momenteel geen consensus over hoe dit moet worden gedaan. Eén methode   voor het structureren van gegevens onder /srv is door protocol, bijvoorbeeld. ftp, rsync, www,   en cvs. Op grote systemen kan het nuttig zijn om te structureren /srv door   bestuurlijke context, zoals /srv/physics/www, /srv/compsci/cvs,   enz. Deze opstelling zal verschillen van host tot host. Daarom geen programma   moet vertrouwen op een specifieke submapstructuur van /srv bestaande of   gegevens worden noodzakelijkerwijs opgeslagen in /srv. Echter /srv moet altijd   bestaan ​​op FHS-compatibele systemen en moeten als standaard worden gebruikt   locatie voor dergelijke gegevens.

Distributies moeten ervoor zorgen dat lokaal geplaatste bestanden niet worden verwijderd   deze mappen zonder beheerdersrechten.


Op een SELinux-systeem is de standaarddirectory /var/www/git, en repos zouden in submappen daarvan moeten zijn. Of u kunt, bijvoorbeeld, /srv/git en stel de bestandscontext gelijk aan:

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

27
2017-10-01 12:13





/home/git/

Dit lijkt in eerste instantie een beetje onconventioneel, maar het is zeer redelijk aangezien deze map voor jou is gemaakt (met de juiste rechten) wanneer je dit doet sudo useradd git. Je kunt gewoon overschakelen naar de git-gebruiker, cd en voer onmiddellijk uit:

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

en zet publieke sleutels van uw peers in het zojuist gemaakte authorized_keys bestand.

Na u git init --bare jouw project, de "url" is dan gewoon ... wacht erop ...

git@<server>:<project>

5
2018-03-03 20:12



Bijna zoals aanbevolen in "Pro Git" -boek: git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server - exic


Zoals voretaq7 al zei, is er geen goed of fout antwoord op een dergelijk onderwerp. Als u echter softs wilt volgen, lijkt het erop dat databasesofts hun gegevens opslaan

/var/lib/soft

Voor bijvoorbeeld Postgresql 9.1 op debian is de map

/var/lib/postgresql/9.1/

Dus ik zou persoonlijk kiezen

/var/lib/git

1
2017-10-01 10:03





Het is geheel aan jou. Het is echter het beste om git data dir op een aparte partitie of zelfs een schijf te plaatsen om systeemupgrades enz. Gemakkelijker te maken. Je moet er natuurlijk voor zorgen dat er voldoende schijfruimte beschikbaar is.


1
2018-03-01 10:25





Op mijn Arch Linux heb ik /srv/http voor apache (wat standaard is in het systeem) en ik gebruik het ook voor mijn node.js http-servers. Op dezelfde manier besloot ik om gewoon alle git repositories in te plaatsen /srv/git.

Ik gebruik GitLab, en /srv/git is in dat geval ook de thuismap voor git.

Uiteindelijk is het aan jou. Ik vond dat het vasthouden aan een indeling die lijkt op andere services in je distro gemakkelijk te onthouden is.


1
2018-01-30 17:05





Als je een frontend gebruikt om te gitnen, ga dan gewoon door waar degene die door je distributie is verpakt ze wil plaatsen. Al het andere creëert alleen onnodige onverenigbaarheden.


0
2018-03-01 18:10



1 / Ik gebruik geen frontend om te git2 / Git komt niet met een aanbeveling over het plaatsen van git repositories ... elke map waar je git init doet is een git repository. - Samuel Rossille
1 / Aan de voorkant zou ik aannemen dat de git-server de repos serveert. 2 / een dergelijke server, zelfs als alleen een HTTP-server wordt gebruikt, zou een standaardlocatie hebben. Natuurlijk hebben we het over de locatie voor hosting, als u met de code werkt, bevindt de .git zich meestal in het project. - hultqvist


Ten eerste, met betrekking tot de suggestie om / srv te gebruiken, ga je ervan uit dat alle git-repositories worden gebruikt voor websites. Het kan waar zijn voor jou, maar je zou een stukje software kunnen hebben dat geen website is.

Ten tweede krijg je twee leuke voordelen door je code-repository's buiten de / var / www / html of / srv / html op te slaan. U kunt op elk niveau symbolische koppelingen naar uw repo maken, waardoor het eenvoudiger wordt om uw bibliotheken te verbergen. Ook als de locatie van uw repository helemaal verandert, hoeft u uw virtuele hostconfiguraties niet aan te passen. In plaats daarvan pas je gewoon je symbolische koppelingen aan.

Ik gebruikte / var / repo, maar ik denk dat / var / git beter is, en dat vanaf nu zal gebruiken.


0
2017-11-21 17:44