Cette page présente la mise en place d'une solution d'hébergement de dépôts `git`. ||<#FFFF50> '''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 : {{{#!shell $ 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 }}}