No Somos Libres

August 1, 2007

Cómo montar un sencillo servidor de Subversion

Filed under: Informática, GNU/Linux — Adrián @ 1:58 pm

Subversion es un Sistema de Control de Versiones, similar a CVS, pero que incluye muchas características que lo hacen, desde mi punto de vista, más útil que CVS. Para más información sobre las diferencias y las similitudes entre estos dos sistemas mirad en los links que os he dejado arriba.

Subversion tiene paquete en las distribuciones basadas en Debian, así que si sois los afortunados usuarios de una de estas, tan sólo tendréis que teclear en vuestro terminal (o buscar en sinaptic):

aptitude install subversion

Si no, lo bajáis de la página oficial y seguimos. Después creáis la carpeta (ya sabéis, mkdir …) que queréis que contenga los repositorios de subversion. Yo he elegido /var/svn. Después tendréis que usar el comando svnadmin (como root) para crear el repositorio que queráis. Por ejemplo:

montseny:/# cd /var/svn/
montseny:/var/svn# svnadmin create myrepo

Con esto tenemos creado el repositorio myrepo dentro de /var/svn, pero aún nos queda configurar el acceso al mismo y configurar subversion para que sirva ese repositorio al exterior. Los ficheros de configuración están dentro de la carpeta myrepo/conf. El fichero authz puede dejarse tal como viene, todo comentado, siempre que todos los usuarios vayan a tener acceso total a todos los repositorios. Si se quiere especificar quién tendrá acceso a qué repositorio y con qué permisos, o incluso crear grupos de usuarios, ese es vuestro fichero. Vienen ejemplos bastante sencillos así que no haremos más hincapié en él. En el fichero passwd debemos poner los usuarios que esperamos manejen el repositorio y trabajen en él:

[users]
adrian = mypassword
billy_puertas = supassword

Nos queda svnserve.conf, donde debemos descomentar las siguientes lineas, y configurarlas según nuestra preferencia. Yo he especificado que los usuarios autenticados tienen permisos de escritura en los repositorios y los no autenticados no pueden hacer nada:

[general]
anon-access = none
auth-access = write
password-db = passwd

La directiva password-db indica a subversion dónde autenticar a los usuarios. Existen muchas variedades, pero puesto que aquí se trata de montar un repositorio sencillo, para uso “doméstico”, dejaremos passwd, que es el fichero donde hemos añadido nuestros usuarios. Con esto tenemos perfectamente configurado el servidor, sólo nos queda lanzar el demonio que lo sirva a través de internet, con la siguiente linea:

montseny:~# svnserve -d –listen-host xxx.xx.xx.xxx -r /var/svn

El parámetro -d indica que se comportará como un demonio y correrá en background, listen-host es la ip del servidor y -r el directorio que contiene los repositorios. Aseguraos de abrir el puerto de subversion si tenéis firewall, que por defecto es el 3690 udp y tcp. Ahora sí que sí, tenéis funcionando subversion. Esto se puede complicar mucho, hasta el punto de montar clones de sourceforge como gforge, que usan subversion por debajo pero con la configuración almacenada en base de datos. Fue tan complicado montar gforge que creo que me llevaría un libro escribir un tutorial, así que de momento no creo que lo haga.

Un ejemplo de gforge: http://gforge.org
El clásico sourceforge: http://sourceforge.net

1 Comment »

  1. estoy mirando las diferencias entre SVN y CVS, por que no las tengo muy claras… aunque de momento para lo que he usado repositorios no creo que notase mucho el cambio…

    bueno, espero que dentro de poco en nuestro repositorio vaya habiendo cada vez más código, jeje

    Comment by pads — August 1, 2007 @ 2:05 pm

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress