Git depolarını linux dosya sistemi ağacında saklamak için kullanılan geleneksel yer neresidir?


58

Bir web sunucusunun barındırılmasıyla bir benzetme yaparsam, git'in verilerinin içeride olması gerektiğini söyleyebilirim /var/git, bu nedenle git depomuzda/var/git/myrepo

S : Doğru tahmin bu mu?

Yanıtlar:


31

Burada kendi kişisel dininiz tarafından dikte edilen ve hier(7)sistemdeki kılavuz sayfasının içeriği dışında doğru ya da yanlış cevap yoktur .

tipik bir Linux hiersayfası ; Tipik BSD hiermanpage )

/var/git/*şahsen bana makul görünüyor. Benimki orası.


3
Benzer şekilde, Arch Linux'ta apache'nin klasörü / srv / http (diğer bazı dağıtımlar gibi / var / www yerine) 'dir.
trusktr

Bir yerde / var altında / makul görünüyor, ama aynı zamanda aşağıda Denis R'ın cevabı bkz: serverfault.com/a/433584/45819 - o / var / lib / iyi nedenler ile GİT'e koyar
mit

30

Altında bir dizine (veya paylaşılan dosya sistemine) yerleştirin /srv. Bunun için var.

/srvDizin içindir sistem tarafından sunulan siteye özgü verileri . Standarttan:

Bunu belirlemenin bu ana amacı, kullanıcıların belirli servisler için veri dosyalarının konumunu bulabilmeleri ve böylece salt okunur veri, yazılabilir veri ve komut dosyaları (cgi komut dosyaları gibi) için tek bir ağaç gerektiren servislerin makul şekilde yerleştirilebilmesidir. Yalnızca belirli bir kullanıcının ilgisini çeken veriler, bu kullanıcıların giriş dizinine girmelidir.

Alt dizinlerini adlandırmak için kullanılan metodoloji /srvbelirtilmemiştir çünkü şu anda bunun nasıl yapılması gerektiğine dair bir fikir birliği yoktur. Altındaki verileri yapılandırmak için bir yöntem /srvprotokol iledir, örn. ftp, rsync, wwwVe cvs. Büyük sistemlerde yapılandırılması için yararlı olabilir /srvgibi idari bağlamda tarafından /srv/physics/www, /srv/compsci/cvsvb Bu kurulum taşıyıcıdan taşıyıcıya farklı olacaktır. Bu nedenle, hiçbir program, /srviçinde depolanan mevcut veya verilerin belirli bir alt dizin yapısına dayanmamalıdır /srv. Bununla birlikte /srv, her zaman FHS uyumlu sistemlerde bulunmalı ve bu veriler için varsayılan konum olarak kullanılmalıdır.

Dağıtımların, bu dizinlere yerel olarak yerleştirilmiş dosyaları yönetici izni olmadan kaldırmamaya özen göstermesi gerekir.


SELinux etkin bir sistemde, varsayılan dizindir /var/www/gitve repolar alt dizinlerinde olmalıdır. Veya, örneğin /srv/git, dosya içeriğini kullanabilir ve eşdeğer olarak ayarlayabilirsiniz:

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

5
/home/git/

Bu başlangıçta biraz sıradışı görünebilir, ancak yaptığınız zaman bu dizin sizin için (doğru izinlerle) yapıldığı için çok makuldür sudo useradd git. Sadece git kullanıcısına geçebilir cdve hemen çalıştırabilirsiniz:

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

ve akranlarınızın genel anahtarlarını, yeni oluşturulan yetkili_ anahtarlar dosyasına koyun.

git init --bareProjenizi yaptıktan sonra , "url" o zaman sadece ... bekleyin ...

git@<server>:<project>

"Pro Git" kitabında tavsiye edildiği gibi: git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server
exic

1

Voretaq7'nin dediği gibi, böyle bir konuda doğru ya da yanlış cevap yoktur. Ancak, izleri izlemek istiyorsanız, veri tabanı izleri kendi verilerini depolar gibi görünüyor.

/var/lib/soft

Örneğin, debian'daki Postgresql 9.1 için klasör

/var/lib/postgresql/9.1/

Böylece şahsen seçerdim

/var/lib/git

1

Tamamen size kalmış. En iyisi, git sistemi dir, sistem yükseltmelerini vb. Kolaylaştırmak için ayrı bir bölüme veya hatta diske koymalısınız ve tabii ki, yeterli disk alanı olduğundan emin olmalısınız.


1

Arch /srv/httpLinux'umda apache var (sistem varsayılanı) ve bunu node.js http sunucuları için de kullanıyorum. Benzer şekilde tüm git depolarını da yerleştirmeye karar verdim /srv/git.

GitLab'ı kullanıyorum ve /srv/gitbu durumda da git için giriş klasörü.

Nihayetinde size kalmış. Dağıtımınızdaki diğer hizmetlere benzer bir formata yapışmanın hatırlamanın kolay olduğunu buldum.


0

Gitmek için bazı ön uçlar kullanıyorsanız, dağıtımınızla paketlenmiş olanın yerleştirmek istediği yere gidin. Başka bir şey sadece gereksiz uyumsuzluklar yaratıyor.


1 / git için bir ön uç kullanmıyorum 2 / Git git depolarını nereye koyacağınızla ilgili bir öneriyle gelmiyor ... git init yaptığınız herhangi bir klasör bir git deposu.
Samuel Rossille

1 / Ön uçta, repoları servis eden git sunucusunu varsayardım. 2 / böyle bir sunucu, yalnızca bir HTTP sunucusu kullanılsa bile, varsayılan bir konuma sahip olacaktır. Elbette, barındırma yeri hakkında konuşuyoruz, kodla çalışırken .git çoğunlukla projenin içinde.
hultqvist

0

Öncelikle, / srv önerisiyle ilgili olarak, tüm git havuzlarının web siteleri için kullanıldığı varsayımı altındasınız. Sizin için doğru olabilir, ancak web sitesi olmayan bir yazılıma sahip olabilirsiniz.

İkinci olarak, kod havuzlarınızı / var / www / html veya / srv / html dışında saklayarak, iki güzel avantaj elde edersiniz. Depounuza istediğiniz düzeyde sembolik bağlantılar oluşturarak kütüphanelerinizi gizlemeyi kolaylaştırabilirsiniz. Ayrıca, havuzunuzun konumu hiç değişmezse, sanal ana bilgisayar yapılandırmalarınızı değiştirmeniz gerekmez. Bunun yerine sembolik bağlarınızı düzeltin.

/ Var / repo kullanıyordum ama sanırım / var / git'in daha iyi olduğunu ve bundan sonra kullanacağını düşünüyorum.


0

Daha sonra dağıttığım site konfigürasyonlarını korumak için git repoları indirirken bunları

/ Veri / repo / $ REPO_GROUP_OR_USER / $ REPO_NAME

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.