Se faccio un'analogia con l'hosting di un server Web, direi che i dati di git dovrebbero essere presenti /var/git
, quindi il mio repository git sarebbe in/var/git/myrepo
D : È la supposizione giusta?
Se faccio un'analogia con l'hosting di un server Web, direi che i dati di git dovrebbero essere presenti /var/git
, quindi il mio repository git sarebbe in/var/git/myrepo
D : È la supposizione giusta?
Risposte:
Non esiste una risposta giusta o sbagliata qui, tranne quella dettata dalla propria religione personale e dai contenuti della hier(7)
manpage sul proprio sistema.
tipica hier
manpage Linux ; tipica hier
manpage BSD )
/var/git/*
mi sembra ragionevole personalmente. Ecco dove tengo il mio.
Inseriscilo in una directory (o filesystem condiviso) sotto /srv
. Questo è quello che serve.
La /srv
directory è destinata ai dati specifici del sito forniti dal sistema . Dallo standard:
Questo scopo principale di specificare ciò è che gli utenti possano trovare la posizione dei file di dati per un particolare servizio e che i servizi che richiedono un singolo albero per dati di sola lettura, dati scrivibili e script (come gli script cgi) possano essere ragionevolmente posizionati. I dati che interessano solo un utente specifico dovrebbero andare nella home directory di quell'utente.
La metodologia utilizzata per nominare le sottodirectory di
/srv
non è specificata in quanto attualmente non vi è consenso su come farlo. Un metodo per strutturare i dati/srv
è tramite protocollo, ad es.ftp
,rsync
,www
, Ecvs
. Nei sistemi grandi può essere utile per strutturare/srv
dal contesto amministrativo, come/srv/physics/www
,/srv/compsci/cvs
ecc Questa configurazione varierà da host a host. Pertanto, nessun programma dovrebbe fare affidamento su una specifica struttura di sottodirectory di/srv
dati esistenti o in cui sono necessariamente memorizzati/srv
. Tuttavia,/srv
dovrebbe sempre esistere su sistemi conformi a FHS e dovrebbe essere utilizzato come posizione predefinita per tali dati.Le distribuzioni devono fare attenzione a non rimuovere i file collocati localmente in queste directory senza l'autorizzazione dell'amministratore.
Su un sistema abilitato per SELinux, la directory predefinita è /var/www/git
e i repository dovrebbero trovarsi nelle sue sottodirectory. In alternativa, è possibile utilizzare, ad esempio, /srv/git
e impostare il contesto del file come equivalente:
semanage fcontext -a -e /var/www/git /srv/git
/home/git/
All'inizio questo potrebbe sembrare un po 'non convenzionale, ma è molto ragionevole poiché questa directory è fatta per te (con le autorizzazioni corrette) quando lo fai sudo useradd git
. Puoi semplicemente passare all'utente git cd
ed eseguire immediatamente:
$ mkdir .ssh; chmod 700 .ssh
$ touch .ssh/authorized_keys; chmod 600 .ssh/authorized_keys
e inserisci le chiavi pubbliche dei tuoi colleghi nel file autorizzato_keys appena creato.
Dopo il git init --bare
tuo progetto, l'URL è solo ... aspetta ...
git@<server>:<project>
Come diceva voretaq7, non esiste una risposta giusta o sbagliata su tale argomento. Tuttavia, se si desidera seguire i softs, sembra che i softs del database memorizzino i loro dati
/var/lib/soft
Ad esempio, per Postgresql 9.1 su debian la cartella è
/var/lib/postgresql/9.1/
Quindi sceglierei personalmente
/var/lib/git
Sul mio Arch Linux ho /srv/http
per apache (che è l'impostazione predefinita del sistema) e lo uso anche per i miei server http node.js. Allo stesso modo ho deciso di inserire tutti i repository git /srv/git
.
Uso GitLab ed /srv/git
è anche la cartella home di git in quel caso.
Alla fine, dipende da te. Ho scoperto che attenersi a un formato simile ad altri servizi nella tua distribuzione è facile da ricordare.
Se usi un frontend per git, vai semplicemente dove quello impacchettato dalla tua distribuzione vuole posizionarli. Nient'altro sta solo creando incompatibilità inutili.
Innanzitutto, per quanto riguarda il suggerimento di utilizzare / srv, si presume che tutti i repository git siano utilizzati per i siti Web. Potrebbe essere vero per te, ma potresti avere un software che non è un sito web.
In secondo luogo, memorizzando i repository di codice al di fuori di / var / www / html o / srv / html, si ottengono due vantaggi. È possibile creare collegamenti simbolici nel repository a qualsiasi livello, rendendo più semplice nascondere le librerie. Inoltre, se la posizione del repository cambia, non è necessario modificare le configurazioni dell'host virtuale. Invece devi solo regolare i tuoi collegamenti simbolici.
Stavo usando / var / repo, ma penso che / var / git sia migliore e lo userò d'ora in poi.