Git » Historique » Version 16
Antoine Lubineau, 21/02/2012 21:54
1 | 1 | Antoine Lubineau | h1. Installation et utilisation dâun serveur Git |
---|---|---|---|
2 | 1 | Antoine Lubineau | |
3 | 15 | Antoine Lubineau | {{>toc}} |
4 | 15 | 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 | 1 | 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 | 10 | Antoine Lubineau | Les explications qui suivent ont été mises en pratique sur le serveur @git.tetaneutral.net@ de Tetaneutral.net, donc avec une Debian Squeeze. |
10 | 10 | Antoine Lubineau | |
11 | 2 | Antoine Lubineau | h2. "Gitolite":https://github.com/sitaramc/gitolite |
12 | 1 | Antoine Lubineau | |
13 | 4 | Antoine Lubineau | h3. Installation |
14 | 4 | Antoine Lubineau | |
15 | 4 | Antoine Lubineau | h3. Configuration |
16 | 1 | Antoine Lubineau | |
17 | 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: |
18 | 10 | Antoine Lubineau | * @conf@ qui va contenir les fichiers de configuration (le plus souvent un seul, @gitolite.conf@)â¯; |
19 | 10 | Antoine Lubineau | * @keydir@, qui va stocker les clés publiques SSH des utilisateurs. |
20 | 8 | Antoine Lubineau | |
21 | 1 | Antoine Lubineau | h2. git-daemon |
22 | 1 | Antoine Lubineau | |
23 | 15 | Antoine Lubineau | h3. Installation |
24 | 15 | Antoine Lubineau | |
25 | 15 | Antoine Lubineau | Rien à faire, @git-daemon(1)@ vient avec @git(1)@. |
26 | 15 | Antoine Lubineau | |
27 | 15 | Antoine Lubineau | h3. Configuration |
28 | 15 | Antoine Lubineau | |
29 | 15 | Antoine Lubineau | La configuration de @git-daemon@ se fait sous Debian dans @/etc/default/git-daemon@. |
30 | 15 | Antoine Lubineau | @git-daemon(1)@ peut être lancé avec lâoption @--export-all@, mais câest peu recommandé si on ne veut pas donner un accès en lecture à tous. On préférera créer dans chaque dépôt à exporter le fichier @git-daemon-export-ok@. |
31 | 14 | Antoine Lubineau | |
32 | 4 | Antoine Lubineau | h2. "cgit":http://hjemli.net/git/cgit/ |
33 | 4 | Antoine Lubineau | |
34 | 4 | Antoine Lubineau | h3. Installation |
35 | 2 | Antoine Lubineau | |
36 | 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). |
37 | 1 | Antoine Lubineau | <pre> |
38 | 8 | Antoine Lubineau | wget http://hjemli.net/git/cgit/snapshot/cgit-0.9.0.2.tar.bz2 |
39 | 8 | Antoine Lubineau | wget http://arch.p5n.pp.ru/~sergej/dl/2011/git-1.7.4.tar.bz2 |
40 | 8 | Antoine Lubineau | tar xf cgit-0.9.0.2.tar.bz2 |
41 | 8 | Antoine Lubineau | cd cgit-0.9.0.2 |
42 | 8 | Antoine Lubineau | tar xf -C git ../git-1.7.4.tar.bz2 |
43 | 1 | Antoine Lubineau | </pre> |
44 | 1 | Antoine Lubineau | |
45 | 8 | Antoine Lubineau | On peut modifier le @Makefile@ en mettant |
46 | 8 | Antoine Lubineau | <pre>CGIT_SCRIPT_PATH = /var/www</pre> |
47 | 8 | Antoine Lubineau | et |
48 | 8 | Antoine Lubineau | <pre>prefix = /usr/local/cgit</pre> |
49 | 4 | Antoine Lubineau | |
50 | 9 | Antoine Lubineau | Ensuiteâ¯: |
51 | 9 | Antoine Lubineau | <pre> |
52 | 9 | Antoine Lubineau | make |
53 | 1 | Antoine Lubineau | make install |
54 | 1 | Antoine Lubineau | </pre> |
55 | 9 | Antoine Lubineau | |
56 | 10 | Antoine Lubineau | h3. Configuration de cgit |
57 | 1 | Antoine Lubineau | |
58 | 12 | 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@). Dans @gitolite.conf@ : |
59 | 12 | Antoine Lubineau | <pre> |
60 | 12 | Antoine Lubineau | repo testing |
61 | 12 | Antoine Lubineau | RW+ = pipo |
62 | 12 | Antoine Lubineau | R = gitweb |
63 | 12 | Antoine Lubineau | </pre> |
64 | 10 | Antoine Lubineau | |
65 | 13 | 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â¯Â». |
66 | 13 | Antoine Lubineau | |
67 | 10 | Antoine Lubineau | La configuration de @cgit@ se trouve dans @cgitrc(5)@ : |
68 | 1 | Antoine Lubineau | <pre> |
69 | 10 | Antoine Lubineau | virtual-root=/ |
70 | 10 | Antoine Lubineau | project-list=/home/git/projects.list |
71 | 16 | Antoine Lubineau | scan-path=~git/repositories/ |
72 | 16 | Antoine Lubineau | snapshots=tar.gz tar.bz2 |
73 | 16 | Antoine Lubineau | enable-commit-graph=1 |
74 | 16 | Antoine Lubineau | enable-tree-linenumbers=1 |
75 | 16 | Antoine Lubineau | enable-index-links=1 |
76 | 16 | Antoine Lubineau | enable-log-filecount=1 |
77 | 16 | Antoine Lubineau | enable-log-linecount=1 |
78 | 16 | Antoine Lubineau | max-stats=quarter |
79 | 16 | Antoine Lubineau | clone-prefix=http://git.tetaneutral.net git://git.tetaneutral.net |
80 | 10 | Antoine Lubineau | </pre> |
81 | 10 | Antoine Lubineau | |
82 | 10 | Antoine Lubineau | h4. Configuration dâApache |
83 | 10 | Antoine Lubineau | |
84 | 10 | Antoine Lubineau | Pour que le serveur web ait les droits de lecture sur les dépôts, il faut ajouter lâutilisateur @www-data@ (ou lâutilisateur sous lequel tourne Apache) au groupe @git@ : |
85 | 10 | Antoine Lubineau | <pre> |
86 | 6 | Antoine Lubineau | usermod -aG git www-data |
87 | 1 | Antoine Lubineau | </pre> |
88 | 1 | Antoine Lubineau | |
89 | 11 | Antoine Lubineau | Dans @~git/.gitolite.rc@, changer |
90 | 1 | Antoine Lubineau | <pre> |
91 | 1 | Antoine Lubineau | $REPO_UMASK = 0077; |
92 | 1 | Antoine Lubineau | </pre> |
93 | 1 | Antoine Lubineau | en |
94 | 1 | Antoine Lubineau | <pre> |
95 | 1 | Antoine Lubineau | $REPO_UMASK = 0027; |
96 | 1 | Antoine Lubineau | </pre> |
97 | 11 | Antoine Lubineau | Ce réglage nâétant valable que pour les nouveaux dépôts, il faut effectuer un @chmod -R g+rX@ sur les dépôts existants (*pas gitolite-admin.git* en général). |
98 | 1 | Antoine Lubineau | |
99 | 10 | Antoine Lubineau | à mettre dans un _virtual host_ dâApacheâ¯: |
100 | 1 | Antoine Lubineau | <pre> |
101 | 10 | Antoine Lubineau | DocumentRoot /var/www |
102 | 10 | Antoine Lubineau | <Directory /var/www/> |
103 | 10 | Antoine Lubineau | Addhandler cgi-script .cgi |
104 | 10 | Antoine Lubineau | DirectoryIndex cgit.cgi |
105 | 10 | Antoine Lubineau | Options +FollowSymLinks +ExecCGI |
106 | 10 | Antoine Lubineau | AllowOverride None |
107 | 10 | Antoine Lubineau | Order allow,deny |
108 | 10 | Antoine Lubineau | allow from all |
109 | 2 | Antoine Lubineau | |
110 | 10 | Antoine Lubineau | RewriteEngine On |
111 | 10 | Antoine Lubineau | RewriteBase / |
112 | 10 | Antoine Lubineau | RewriteCond %{REQUEST_FILENAME} !-f |
113 | 10 | Antoine Lubineau | RewriteCond %{REQUEST_FILENAME} !-d |
114 | 10 | Antoine Lubineau | RewriteRule (.*) cgit.cgi/$1 |
115 | 10 | Antoine Lubineau | RewriteRule ^cgit.cgi$ cgit.cgi/ |
116 | 10 | Antoine Lubineau | </Directory> |
117 | 10 | Antoine Lubineau | </pre> |