Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
linux:svn_debian [2008/01/22 14:10]
jfg
linux:svn_debian [2010/01/12 13:29] (current)
Line 1: Line 1:
 +====== Installer subversion sur Debian Etch =======
  
 +Ce mini howto va vous permetre en quelques touch de mettre
 +en place un serveur svn sur votre Etch.
 +
 +On va supposer que votre repo sera dans /var/svn et
 +s'​appellera project.
 +
 +
 +===== 1 - La methode propre =====
 +
 +Executez toutes ces commandes en tant que root :
 +
 +  aptitude install subversion apache2 php5 libapache2-svn
 +
 +Au cas ou..
 +  vim /​etc/​apache2/​httpd.conf
 +  ​
 +  ServerName 127.0.0.1
 +  :wq
 +
 +Creation des repertoires + gestion des droits
 +  mkdir -p /​var/​svn/​project
 +  chgrp -R www-data /var/svn
 +  chmod -R 770 /var/svn
 +  chmod -R g+s /var/svn
 +
 +On cree notre premier repo :
 +  svnadmin create /​var/​svn/​project
 +
 +On configure toussa... Ici tous ceux qui sont authentifies auront un droit d'​ecriture.
 +  vim /​var/​svn/​project/​conf/​svnserve.conf
 +  ​
 +  [general]
 +  anon-access = none
 +  auth-access = write
 +  password-db = htpasswd
 +  authz-db = authzfile
 +  ​
 +  :wq
 +
 +On defini des groupes et des utilisateurs. Emile n'aura que le droit de lire.
 +  vim /​var/​svn/​project/​conf/​authzfile
 +  ​
 +  [groups]
 +  groupe1 = jean,jules
 +  groupe2 = emile
 +  ​
 +  [/]
 +  @groupe1 = rw
 +  @groupe2 = r
 +  * =
 +  ​
 +  :wq
 +
 +On leur donne un mot de passe. La premiere ligne permet de creer le fichier.
 +  htpasswd -c -m /​var/​svn/​project/​conf/​htpasswd jean
 +  htpasswd -m /​var/​svn/​project/​conf/​htpasswd jules
 +  htpasswd -m /​var/​svn/​project/​conf/​htpasswd emile
 +
 +Configuration d'​apache.
 +  vim /​etc/​apache2/​mods-available/​dav_svn.conf
 +  ​
 +  <​Location /​project>​
 +    DAV svn
 +    SVNPath /​var/​svn/​project
 +    AuthType Basic
 +    AuthName "​Project Repository"​
 +    AuthUserFile /​var/​svn/​project/​conf/​htpasswd
 +    AuthzSVNAccessFile /​var/​svn/​project/​conf/​authzfile
 +    Require valid-user
 +  </​Location>​
 +  ​
 +  :wq
 +
 +On rajoute le Directory.
 +  vim /​etc/​apache2/​sites-enabled/​000-default
 +  ​
 +  [... a la fin avant le </​VirtualHost>​ ...]
 +  ​
 +    <​Directory "/​var/​svn/​project">​
 +        Options Indexes FollowSymLinks MultiViews
 +        AllowOverride None
 +        Order allow,deny
 +        allow from all
 +    </​Directory>​
 +  ​
 +  </​VirtualHost>​
 +  ​
 +  :wq
 +
 +Hop, Hop, on peuple un minimum notre repo et on remet les bons droits.
 +  cd /tmp && mkdir temp && cd temp
 +  mkdir -p branches tags trunk/src trunk/​images trunk/​includes trunk/lib
 +  cd ../
 +  svn import -m "​Importing project"​ temp file:///​var/​svn/​project
 +  chmod -R 770 /var/svn
 +
 +Vous pouvez a présent vous rendre sur http://​localhost/​project ​
 +ou faire un "svn co http://​jean@localhost/​project"​
 +
 +Youpi, mais c'est moche...
 +
 +Solution : websvn !
 +
 +  aptitude install websvn
 +
 +Lors de l'​install entrez les valeurs suivantes :
 +  Premier ecran   : <OK>
 +  Second ecran    : /var/svn
 +  Troisieme ecran : (vide)
 +  Dernier ​        : <OK>
 +
 +Decommentez ou ajoutez les lignes suivantes dans le fichier :
 +
 +  vim /​etc/​websvn/​config.inc
 +  ​
 +  $config->​setTemplatePath("​$locwebsvnreal/​templates/​BlueGrey/"​);​
 +  include("​languages/​french.inc"​);​
 +  unset($contentType["​.sh"​]);​
 +  $config->​useEnscript();​
 +  $extEnscript["​.java"​] = "​java";​
 +  $extEnscript["​.pl"​] = "​perl";​
 +  $extEnscript["​.py"​] = "​python";​
 +  $extEnscript["​.sql"​] = "​sql";​
 +  $extEnscript["​.html"​] = "​html";​
 +  $extEnscript["​.xml"​] = "​html";​
 +  $extEnscript["​.thtml"​] = "​html";​
 +  $extEnscript["​.tpl"​] = "​html";​
 +  $extEnscript["​.sh"​] = "​bash";​
 +  ​
 +  :wq
 +
 +Configuration d'​apache pour websvn
 +  vim /​etc/​websvn/​apache.conf
 +  ​
 +  <​Location /websvn>
 +    Options FollowSymLinks
 +    order allow,deny
 +    allow from all
 +    AuthType Basic
 +    AuthName "​Subversion Repository"​
 +    Require valid-user
 +    AuthUserFile /​var/​svn/​project/​conf/​htpasswd
 +    <​IfModule mod_php4.c>​
 +        php_flag magic_quotes_gpc Off
 +        php_flag track_vars On
 +    </​IfModule>​
 +  </​Location>​
 +  ​
 +  :wq
 +
 +Rendez vous alors sur http://​localhost/​websvn
 +et youpi, c'est joli !
 +
 +Si vous avez le courage, vous pouvez customiser votre interface.
 +Il suffit pour cela de creer un nouveau repertoire dans /​var/​www/​websvn/​templates
 +Puis de copier par exemple le contenu de BlueGray dans votre nouveau repertoire
 +et de modifier cette ligne dans /​etc/​websvn/​config.inc :
 +
 +  $config->​setTemplatePath("​$locwebsvnreal/​templates/​VOTRE_TEMPLATE/"​);​
 +
 +Vous pouvez par exemple ecraser subversion.png par votre propre logo.
 +
 +A noter que les gars qui ont fait websvn ne devaient pas avoir de don
 +particulier pour le CSS, et qu'ils ont fait un truc a la quick&​dirty...
 +
 +Amusez vous bien !
 +
 +
 +
 +
 +
 +===== 2 - L'​obsolescence =====
 +
 +Si certains veulent simplement mettre en place un serveur SVN de petite envergure, une solution consisterait a utiliser svn+ssh. Plus court, et sans convi clika truc a la websvn.
 +
 +  aptitude install subversion
 +
 +Creation des repertoires + gestion des droits
 +  groupadd subversion
 +  mkdir -p /​var/​svn/​project
 +  chgrp -R subversion /var/svn
 +  chmod -R 770 /var/svn
 +  chmod -R g+s /var/svn
 +
 +On cree notre premier repo :
 +  svnadmin create /​var/​svn/​project
 +
 +On va faire un ptite bidouille pour lancer umask avant svnserve :
 +  mv /​usr/​bin/​svnserve /​usr/​bin/​svnserve-real
 +
 +  vim /​usr/​bin/​svnserve
 +  ​
 +  #!/bin/sh
 +  umask 002
 +  /​usr/​bin/​svnserve-real $@
 +  ​
 +  :wq
 +
 +Creeons nos utilisateurs :
 +  adduser --ingroup subversion jean
 +  adduser --ingroup subversion jules
 +
 +Lancons ensuite svnserve :
 +  svnserve --daemon --root /var/svn/
 +
 +Vous pouvez a present vous amuser avec des import etc.. :
 +  svn import -m "​Importing Project"​ trunk svn+ssh://​jean@serveursvn/​project
 +  svn co svn+ssh://​jean@serveursvn/​project/​trunk
 +
 +Ceci dit, cette methode ne vaut le coup que si seulement deux ou trois personnes vont utiliser le depot et qu'il n'y a pas de regles de secu particulieres a mettre en place.
 +
 + --- //​[[jf.guchens@gmail.com|jfg]] 2007/12/16 00:46//
linux/svn_debian.txt · Last modified: 2010/01/12 13:29 (external edit)