Instalando Subversion en CentOS

Aunque el título parezca un poco simple, el instalar Subversion en CentOS tiene su truquillo si lo que quieres es instalar la última versión de éste.

Uno de los puntos “fuertes” de CentOS y normalmente de cualquier servidor, es que son muy estables, pero esto tiene su punto negativo, y es que para ello nunca usan las últimas versiones del software, sino usan versiones antiguas, pero al mismo tiempo muy probadas y por consiguiente muy estables también. El usar una versión antigua de software no es nada malo, siempre y cuando esa versión todavía tenga soporte y está parcheada con los últimos parches.

Dicho esto, algunas veces podemos querer correr versiones más modernas en nuestro servidor por el motivo que sea. Ya sea porque necesitemos usar alguna funcionalidad que la nueva versión ofrezca, mejor integración con otros sistemas/productos en nuestra red, etc.

En casa tengo un pequeño servidor que corre CentOS y el otro día me decidí a montar mi propio Subversion. Para ello, sólo tenía que hacer:

yum install mod_dav_svn subversion

Esto te instala Subversion y el modulo para integrarlo con Apache. El “problema” es que la versión que hay en los repositorios oficiales de CentOS es la versión 1.4 y yo quería instalar la versión 1.6, la cual no está en dichos repositorios.

Lo primero es encontrar un repositorio fiable dónde tengan dicha versión. Nota, siempre puedes bajar el código fuente y compilar, pero eso requiera más trabajo y luego mantenerlo de forma manual.

Unos de los repositorios más conocidos es RPMforge. En este enlace os explican como instalar dicho repositorio.

Una vez tengáis instalado dicho repositorio, si intentamos de nuevo instalar o actualizar Subverison, vemos que todavía, lo que nos trae yum es la versión 1.4. Para que yum busque en el nuevo repositorio que acabamos de instalar tienes que hacer los siguiente:

Tenemos que editar /etc/yum.repos.d/CentOS-Base.repo y excluir de las secciones base y update. subversion y y mod_dav_svn. Esto lo hacemos con la etiqueta exclude. Poniendo la siguiente línea en ambas secciones:

exclude=subversion,mod_dav_svn

Luego debemos de hacer un update del sistema:

yum update

Si ya tenías subversion previamente instalado, te debería de decir que hay una actualización. Si no lo tenías instalado, entonces instálalo:

yum install mod_dav_svn subversion

Una vez hecho esto, vamos a crear un repositorio y activar el modulo de Apache (Asumos que ya tienes Apache instalado, sino este es un buen momento para hacerlo).

Edita el fichero /etc/httpd/conf.d/subversion.conf. Aquí copio el trozo de código de mi fichero de configuración:


DAV svn
SVNPath /var/www/svn/repos
AuthType Basic
AuthName "Subversion repos"
AuthUserFile /etc/svn-auth-conf
Require valid-user

Ojo con el SVNPath. Por defecto el fichero de configuración viene tiene comentada todas esas líneas y algunas más, pero en vez de SVNPath, SVNParentPath. Al principio no me di cuenta y decomenté esa línea y no podía acceder a subversion desde Apache o Eclipse. Así que ¡cuidadín!

Una vez hecho eso:

service httpd restart

Ahora vamos a crear los usuarios que podrán acceder al SVN:

htpasswd -cm /etc/svn-auth-conf nombre_usuario

Después de tendrás que introducir la contraseña.

Ahora vamos a crear el repositorio. El path lo puedes cambiar si quieres, pero recuerda cambiar tu fichero de configuración también.

cd /var/www/
mkdir svn
cd svn
svnadmin create repos
chown -R apache.apache repos
service httpd restart

Una vez hecho esto, deberías de poder abrir tu navegador e ir a http://tuservidor/repos y deberías de poder ver el contenido de tu subversion. Te debería preguntar por el nombre de usuario y la contraseña.

Enlaces:

http://wiki.centos.org/HowTos/Subversion http://wiki.centos.org/AdditionalResources/Repositories/RPMForge?action=show&redirect=Repositories%2FRPMForge#head-20e1f65f19ccf2f5fbf5adb30dbaf5ea963a64ae http://stackoverflow.com/questions/96597/how-do-i-upgrade-to-subversion-1-5-on-centos-5