Cette page présente la mise en place d'une solution d'hébergement de dépôts git.
Page est en cours de rédaction. Ne pas la considérer comme une documentation valide ! |
D'abord des prises de notes pendant l'installation... La mise en forme après !
Mise en place
- ajouter la source APT pour backports.org et installer debian-backports-keyring
- installer les versions backport de git-core, gitweb, git-daemon-run et gitosis :
- attention : gitosis réclame la version backports de python-setup-tools
mais un bogue dans python-setup-tools réclame qu'il soit installé en premier !
Paramétrage de python-setuptools (0.6c8-4~bpo40+1) ... pycentral: pycentral pkginstall: already exists: /usr/lib/python2.4/site-packages/setuptools.pth pycentral pkginstall: already exists: /usr/lib/python2.4/site-packages/setuptools.pth dpkg : erreur de traitement de python-setuptools (--configure) : le sous-processus post-installation script a retourné une erreur de sortie d'état 1 dpkg : des problèmes de dépendances empêchent la configuration de gitosis : gitosis dépend de python-setuptools (>= 0.6c8-4~bpo40+1) ; cependant : Le paquet python-setuptools n'est pas encore configuré. dpkg : erreur de traitement de gitosis (--configure) : problèmes de dépendances - laissé non configuré Des erreurs ont été rencontrées pendant l'exécution : python-setuptools gitosis E: Sub-process /usr/bin/dpkg returned an error code (1)
- suivre la doc dans /usr/share/doc/gitosis/README.Debian :
sudo -H -u gitosis gitosis-init < ~/.ssh/authorized_keys
- sudo adduser gitosis ssh
- configurer git-daemon pour utiliser les dépôts de gitosis :
éditer le fichier /etc/sv/git-daemon/run pour y remplacer la dernière ligne de lancement par la suivante :
exec git-daemon --verbose --user=nobody --group=gitosis --base-path=/srv/gitosis/repositories /srv/gitosis/repositories
puis relancer le service git-daemon
- ouvrir au besoin le port 9418/TCP pour ce serveur
- configurer gitweb pour utiliser les dépôts de gitosis :
éditer le fichier /etc/gitweb.conf pour y mettre au moins les lignes suivante :
$projectroot = "/srv/gitosis/repositories"; $projects_list = "/srv/gitosis/gitosis/projects.list"; $projects_list_description_width = 50; $export_ok = ""; $strict_export = "true"; @git_base_url_list = ('git://git.auf.org/');
- ajouter www-data au groupe gitosis pour avoir accès en lecture aux dépôts
- configurer apache pour offrir les services de gitweb :
Alias /gitweb.css /usr/share/gitweb/gitweb.css Alias /git-logo.png /usr/share/gitweb/git-logo.png Alias /git-favicon.png /usr/share/gitweb/git-favicon.png # on n'active pas la ligne suivante car on préfère l'accès via git-daemon #Alias /git /srv/gitosis/repositories ScriptAlias / /usr/lib/cgi-bin/gitweb.cgi
- demander à apache de recharger sa configuration :
$ sudo apache2ctl configtest $ sudo apache2ctl graceful
Gestion des dépôts
- récupérer le dossier de configuration gitosis :
git clone gitosis@git.auf:gitosis-admin.git
éditer le fichier gitosis.conf pour y déclarer les droits d'accès :
[group quelques-zouaves] members = jean-christophe.andre thomas.noel moussa.nombre jerome.santini [group projets-experimentaux] writable = formatage-de-cerveaux domination-mondiale members = @quelques-zouaves
y ajouter les clés publiques utiles, sous la forme keydir/prenom.nom.pub
- et envoyer tout ça à gitosis :
$ git add . $ git commit -a -m "Ajout des projets formatage-de-cerveaux et domination-mondiale." $ git push
- créer son projet localement et l'envoyer sur le serveur :
$ mkdir domination-mondiale $ cd domination-mondiale $ git init $ echo "Vers l'Infini et au delà !" > STRATÉGIE $ git add . $ git commit -a -m "Mise en route du suivi." $ git remote add origin gitosis@git.auf:domination-mondiale.git $ git push origin master
ré-éditer le fichier gitosis.conf pour y déclarer les dépôts à publier :
[repo domination-mondiale] description = Dominer le monde des logiciels, grâce au Libre owner = la FSF ? daemon = yes gitweb = yes [repo formatage-de-cerveaux] description = Reformater les cerveaux correctement (pour remplacer le formatage actuel par qui on sait) owner = Canonical ? daemon = yes gitweb = yes
- et envoyer tout ça à gitosis :
$ git commit -a -m "Publication des projets formatage-de-cerveaux et domination-mondiale." $ git push