Projet

Général

Profil

Git » Historique » Version 9

Antoine Lubineau, 21/02/2012 19:57

1 1 Antoine Lubineau
h1. Installation et utilisation d’un serveur Git
2 1 Antoine Lubineau
3 1 Antoine Lubineau
Les explications qui suivent ont été appliquées sur le serveur @git.tetaneutral.net@ de Tetaneutral.net, donc avec une Debian Squeeze.
4 1 Antoine Lubineau
5 2 Antoine Lubineau
"Git":http://git-scm.com/ est un gestionnaire de versions décentralisé, libre et développé en C. À noter la traduction française du "Git community book":http://www.alexgirard.com/git-book/index.html.
6 1 Antoine Lubineau
7 8 Antoine Lubineau
La configuration se fera essentiellement au travers de "Gitolite":https://github.com/sitaramc/gitolite, qui permet de créer des dépôts, gérer les accès push/pull pour des accès en SSH, déléguer des droits, etc. @git-daemon@ permet de donner un accès au travers du protocole @git@, et @cgit@ sera utilisé pour l’interface web et le pull en HTTP (ou HTTPS).
8 1 Antoine Lubineau
9 2 Antoine Lubineau
h2. "Gitolite":https://github.com/sitaramc/gitolite
10 1 Antoine Lubineau
11 4 Antoine Lubineau
h3. Installation
12 4 Antoine Lubineau
13 4 Antoine Lubineau
h3. Configuration
14 1 Antoine Lubineau
15 8 Antoine Lubineau
Une fois Gitolite installé, la configuration des dépôts et des utilisateurs se fait *uniquement* au travers du dépôt @gitolite-admin.git@. Ce dépôt contient deux dossiers:
16 8 Antoine Lubineau
* @conf@ qui va contenir les fichiers de configuration (le plus souvent un seul, @@) ;
17 8 Antoine Lubineau
* @keydir@, qui va stocker 
18 8 Antoine Lubineau
19 1 Antoine Lubineau
h2. git-daemon
20 1 Antoine Lubineau
21 4 Antoine Lubineau
h2. "cgit":http://hjemli.net/git/cgit/
22 4 Antoine Lubineau
23 4 Antoine Lubineau
h3. Installation
24 2 Antoine Lubineau
25 1 Antoine Lubineau
Comme il n’y a pas de paquet Debian, il faut le compiler à la main. Au moment de la rédaction de ce guide, on ne pouvait pas compiler cgit contre la dernière version de Git (fonctionnel avec cgit 0.9.2.0 et Git 1.7.4).
26 1 Antoine Lubineau
<pre>
27 8 Antoine Lubineau
wget http://hjemli.net/git/cgit/snapshot/cgit-0.9.0.2.tar.bz2
28 8 Antoine Lubineau
wget http://arch.p5n.pp.ru/~sergej/dl/2011/git-1.7.4.tar.bz2
29 8 Antoine Lubineau
tar xf cgit-0.9.0.2.tar.bz2
30 8 Antoine Lubineau
cd cgit-0.9.0.2
31 8 Antoine Lubineau
tar xf -C git ../git-1.7.4.tar.bz2
32 1 Antoine Lubineau
</pre>
33 1 Antoine Lubineau
34 8 Antoine Lubineau
On peut modifier le @Makefile@ en mettant
35 8 Antoine Lubineau
<pre>CGIT_SCRIPT_PATH = /var/www</pre>
36 8 Antoine Lubineau
et
37 8 Antoine Lubineau
<pre>prefix = /usr/local/cgit</pre>
38 4 Antoine Lubineau
39 9 Antoine Lubineau
Ensuite :
40 9 Antoine Lubineau
<pre>
41 9 Antoine Lubineau
make
42 9 Antoine Lubineau
make install
43 9 Antoine Lubineau
</pre>
44 9 Antoine Lubineau
45 4 Antoine Lubineau
h3. Configuration
46 2 Antoine Lubineau
47 5 Antoine Lubineau
Pour que le serveur web ait les droits de lecture sur les dépôts, il faut ajouter l’utilisateur @www-data@ au groupe @git@ :
48 5 Antoine Lubineau
<pre>
49 5 Antoine Lubineau
usermod -aG git www-data
50 5 Antoine Lubineau
</pre>
51 5 Antoine Lubineau
52 6 Antoine Lubineau
Faire un @chmod -R g+rX@ sur les dépôts existants (*pas gitolite-admin.git*), et changer
53 6 Antoine Lubineau
<pre>
54 6 Antoine Lubineau
$REPO_UMASK = 0077;
55 6 Antoine Lubineau
</pre>
56 6 Antoine Lubineau
en
57 6 Antoine Lubineau
<pre>
58 6 Antoine Lubineau
$REPO_UMASK = 0027;
59 6 Antoine Lubineau
</pre>
60 6 Antoine Lubineau
dans @~git/.gitolite.rc@ (ce réglage ne vaut que pour les dépôts qui seront créés par la suite).
61 2 Antoine Lubineau
62 3 Antoine Lubineau
cgit récupère la liste des projets dans @~git/projects.list@. Cette liste est complétée par Gitolite pour les dépôts dont @gitweb@ a les droits en lecture (c’est une dénomination spécifique à gitolite, qui n’est pas incluse dans @@all@).
63 2 Antoine Lubineau
64 2 Antoine Lubineau
La configuration de @cgit@ se trouve dans @cgitrc(5)@ :
65 2 Antoine Lubineau
<pre>
66 2 Antoine Lubineau
virtual-root=/
67 2 Antoine Lubineau
project-list=/home/git/projects.list
68 2 Antoine Lubineau
scan-path=/home/git/repositories/
69 2 Antoine Lubineau
</pre>
70 2 Antoine Lubineau
71 2 Antoine Lubineau
Pour spécifier le propriétaire et la description d’un dépôt, voir le "manuel de gitolite":http://sitaramc.github.com/gitolite/confother_.html, section « specifying gitweb and daemon access ».