Pré-requis
Avoir un serveur SSH fonctionnel.
Avoir git d'installer sur la machine chez moi ça donne ça :
$ rpm -qa | grep git
git-prompt-1.7.1-1mdv2010.1
git-cvs-1.7.1-1mdv2010.1
git-email-1.7.1-1mdv2010.1
git-arch-1.7.1-1mdv2010.1
gitk-1.7.1-1mdv2010.1
git-core-oldies-1.7.1-1mdv2010.1
git-1.7.1-1mdv2010.1
git-svn-1.7.1-1mdv2010.1
git-core-1.7.1-1mdv2010.1
Téléchargement
$ cd ~
$ mkdir dev
$ cd dev
$ git clone git://eagain.net/gitosis.git
Installation
Pour procéder à l'installation il vous faut le paquetage python-setuptools
# urpmi python-setuptools
Chez moi ça donne ça
$ rpm -qa | grep python | grep setuptools
python-setuptools-0.6c11-1mdv2010.1
Il y a un bug qui ne permet pas d'aller au bout de l'installation de gitosis, pour y remédier :
# export PYTHONDONTWRITEBYTECODE=
http://lists.mandriva.com/bugs/2010-05/msg02799.php
http://bitbucket.org/tarek/distribute/issue/168/easy_install-fails-with-byte-compiling
Installons pour de bon :
$ cd ~/dev/gitosis
# python setup.py install
Configuration de gitosis
Création d'un utilisateur git :
# groupadd git
# useradd -g git -d /home/git -s /bin/bash -m git
Avez-vous une clé public SSH ?
si non sous votre utilisateur :
$ ssh-keygen -t rsa
Le résultat se trouve dans /home/votre_utilisateur/.ssh/
Vous avez un fichier id_rsa.pub alors vous avez maintenant une clé public SSH.
si oui :
$ cp /home/votre_utilisateur/.ssh/id_rsa.pub /tmp/cle.pub
Hop en root :
# sudo -H -u git gitosis-init < /tmp/cle.pub
Vous devez obtenir le résultat suivant en cas de réussite :
Initialized empty Git repository in /home/git/repositories/gitosis-admin.git/
Reinitialized existing Git repository in /home/git/repositories/gitosis-admin.git/
A ce stade vous devez avoir un tas de fichier dans /home/git/repositories/gitosis-admin.git/
# ll /home/git/repositories/gitosis-admin.git/
On peut supprimer sur le serveur le répertoire d'installation contenant le clone du dépôt de gitosis :
# rm -rf /home/votre_utilisateur/dev/gitosis
On va suivre le conseil de toki pona et on va changer les droits sur le fichier /home/git/repositories/gitosis-admin.git/hooks/post-update
# chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
L'installation est terminée.
Se connecter, cloner et configurer le serveur pour d'autres utilisateurs
Sur la machine cliente vous pouvez maintenant cloner le dépôt qui est sur votre serveur :
$ git clone git@[adresse du serveur]:gitosis-admin.git
Tapez votre pass phrase, le dépôt est cloné.
$ cd gitosis-admin.git
Il y un fichier gitosis.conf et un répertoire keydir dans votre dépôt.
Le fichier contient vos dépôts et les utilisateurs autorisés à se connecter.
Le répertoire contient les clés publics de vos utilisateurs autorisés.
Pour ajouter un utilisateur et un dépôt je vous invite à lire la démarche sur l'article de toki pona :
http://www.siteduzero.com/tutoriel-3-187504-heberger-des-depots-git-avec-gitosis.html#ss_part_4
Vous éditez à votre convenance et poussez les modifications sur le serveur :
$ git commit -a -m "Ajout de l'utilisateur [toto]"
$ git push
Liens utiles
http://www.siteduzero.com/tutoriel-3-187504-heberger-des-depots-git-avec-gitosis.html