GNU/Linux >> Linux Esercitazione >  >> Linux

Dov'è il posto convenzionale per archiviare i repository git in un albero del file system Linux?

Soluzione 1:

Non c'è una risposta giusta o sbagliata qui, tranne quella dettata dalla tua religione personale e dai contenuti del hier(7) manpage sul tuo sistema.

tipico Linux hier manpage; tipico BSD hier pagina man)

/var/git/* mi sembra ragionevole personalmente. È lì che tengo il mio.

Soluzione 2:

Mettilo in una directory (o filesystem condiviso) sotto /srv . Ecco a cosa serve.

Il /srv directory è destinata ai dati specifici del sito serviti dal sistema. Dallo standard:

Lo scopo principale di specificare questo è in modo che gli utenti possano trovare la posizione dei file di dati per un particolare servizio e in modo che i servizi che richiedono un singolo albero per i dati di sola lettura, i dati scrivibili e gli script (come gli script cgi) possano essere ragionevolmente posizionati. I dati che sono di interesse solo per un utente specifico dovrebbero andare nella home directory di quell'utente.

La metodologia utilizzata per denominare le sottodirectory di /srv non è specificato in quanto al momento non vi è consenso su come farlo. Un metodo per strutturare i dati in /srv è per protocollo, ad es. ftp , rsync , www e cvs . Su sistemi di grandi dimensioni può essere utile strutturare /srv dal contesto amministrativo, come /srv/physics/www , /srv/compsci/cvs ,eccetera. Questa configurazione sarà diversa da host a host. Pertanto, nessun programma dovrebbe basarsi su una specifica struttura di sottodirectory di /srv i dati esistenti devono essere necessariamente archiviati in /srv . Comunque /srv dovrebbe esistere sempre 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 posizionati localmente in queste directory senza il permesso dell'amministratore.

Su un sistema abilitato per SELinux, la directory predefinita è /var/www/git , e i repository dovrebbero trovarsi nelle relative sottodirectory. Oppure puoi usare, ad es. /srv/git e imposta il contesto del file in modo che sia equivalente:

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

Soluzione 3:

/home/git/

Questo potrebbe sembrare un po' non convenzionale all'inizio, ma è molto ragionevole in quanto questa directory è creata per te (con i permessi corretti) quando esegui sudo useradd git . Puoi semplicemente passare all'utente git, cd ed esegui immediatamente:

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

e inserisci le chiavi pubbliche dei tuoi peer nel file authorized_keys appena creato.

Dopo aver git init --bare il tuo progetto, l'"url" è solo...aspettalo...

[email protected]<server>:<project>

Soluzione 4:

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 in /srv/git .

Uso GitLab e /srv/git è la cartella home di git anche in questo caso.

Alla fine, tocca a te. Ho scoperto che attenersi a un formato simile ad altri servizi nella tua distribuzione è facile da ricordare.


Linux
  1. Come trovare il file più vecchio in un albero di directory in Linux

  2. Linux:perché non è presente alcun file system Rootfs sul sistema?

  3. Comprensione del file system sysfs (/sys) in Linux

  4. Come posizionare/memorizzare un file in memoria su Linux?

  5. Linux:dove mettere il file di scambio

Scegli il miglior file system per il tuo Linux

Tutto ciò che devi sapere sul file system Linux

Comprendere il file /etc/fstab in Linux

Comprendere i file /proc/mounts, /etc/mtab e /proc/partitions

Dove posso trovare la prima versione del sistema operativo Linux?

Dov'è il file php.ini su un PC Linux/CentOS?