Instalar Subversion en Ubuntu

De UNALIX

Autor Miguel Cabrera. BETA


Esta es una mini-guía de como instalar y poner en marcha un servidor Subversion y hacer un repositorio publico a través de el modulo WebDav de Apache 2 usando Ubuntu. Este procedimiento fue probado en Ubuntu 5.04 (Hoary) - (En teoría debería funcionar en Breezy y Dapper también).

Contenido

Prerequisitos

Tener corriendo y configuarado el Apache 2. Esta es una mini-guia, si quieres aprender como configurar este servidor web, seguro encontrarás mucha documentacion en la Red.


Instalando Subversion y mod_dav_svn

Apache puede darnos acceso a nuestros repositiorios de subversion, esto lo hace mediante protocolo WebDAV/DeltaV. Necesitamos tener configurado el modulo de apache para Webdav (mod_dav) y aparte de esto necesitamos un módulo especial llamado mod_dav_svn que es el que permite que Subversion y Apache se acoplen.

Instalar Subversion, subversion-tools y mod_dav_svn

[ceruno@taganga~/] sudo  apt-get install subversion subversion-tools libapache2-svn

Sí, así de sencillo.

Configurando Apache

Habilitando mod_dav y mod_dav_svn

[ceruno@taganga~/] sudo ln -s  /etc/apache2/mods-available/dav.load /etc/apache2/mods-enabled/

Si los enlaces simbolicos a dav_svn.conf y dav_svn.conf no existen en el directorio /etc/apache2/mods-enabled/ entonces.

[ceruno@taganga~/] sudo ln -s  /etc/apache2/mods-available/dav_svn.load /etc/apache2/mods-enabled/
[ceruno@taganga~/] sudo ln -s  /etc/apache2/mods-available/dav_svn.conf /etc/apache2/mods-enabled/

Las configuraciones que traen estos ficheros, serviran out of the box. Si necesitas configuraciones avanzadas te recomiendo que el eches un vistazo a la documentación de Apache y al libro de Subversion

Haciendo público el repositorio

Suponiendo que ya hemos creado el repositorio, en mi caso, en /home/ceruno/svn/repo1. A continuación, temos que idicarle a Apache donde se encuentra nuestro repositorio, para ello editamos el archivo de configuración de Apache (/etc/apache2/apache2.conf) y le agragamos la siguiente directiva:

<Location /svn>
 DAV svn
 SVNParentPath /home/ceruno/svn
</Location>

De esta manera, que es mi favorita, el modulo DAV se encaraga de administrar cualquier repositorio SVN que se encuntre bajo /home/ceruno/svn, esto nos ofrece la ventaja de que podemos agregar nuevos repositorios SVN sin necesidad de modificar el archivo de configuración del Apache.

Autenticación de Usuarios

Hasta el momento podemos acceder al repositorio "anonimamente", es decir, tenemos permiso de solo lectura sin necesidad de autenticarnos. Esto puede ser util, pero la mayoria de las veces desearemos enviar los cambios hechos al proyecto a nuestro repositorio; para esto necesitamos alguna manera identificarnos con el sistema. Bueno, como debes imaginar Apache ya tiene esto cubierto.

Para crear usuarios que puedan modificar el repositorio usamos el sistema de contraseñas del Apache, es decir, debemos crear un archivo de usaurios/contraseñas y luego indicarle al Apache donde se encuentra ese archivo. vamos a crear un par de usuarios utilizando la herramienta htpasswd (-c es para crear el archivo).

[ceruno@taganga~/] htpasswd -cm /home/ceruno/etc/svn-auth nelson
New password:*****
Re-type new password:*****

[ceruno@taganga~/] htpasswd -m /home/ceruno/etc/svn-auth jorge
New password:*****
Re-type new password:*****

Listo! ahora solo falta añadirle las directivas al archivo de configuración del Apache.


<Location /svn>
DAV svn
SVNParentPath /home/ceruno/svn/

AuthType Basic
AuthName "Subversion repository"
AuthUserFile /home/ceruno/etc/svn-auth

<LimitExcept GET PROPFIND OPTIONS REPORT>
   Require valid-user
</LimitExcept>

</Location>

La opción LimitExcept sirve para evitar autenticarse si lo que se desea es un acceso de solo lectura.

Enlaces



Bueno, hasta aquí la guia de instale Subversion en Ubuntu para Dummies. Cualquier comentario, error, cartas de amor o muestras de devoción puedes escribirme a mfcabrera at gmail dot com.

Herramientas personales