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