March 25th, 2008Instalación de Subversion y WebSVN en hosting compartido
0. Introducción
Hace poquito adquirí un nuevo hosting con la posibilidad de acceso con SSH. Lo primero que se me ocurrió fue probar si podría instalar Subversion para poder administrar mis programas y colaborar con más gente en éstos. Durante este tutorial aprenderemos a instalar Subversion en un hosting compartido (es decir, los que la mayoría de las personas se compra para uso individual) y WebSVN, que es un gestor de Subversion vía web. Para poder seguir este tutorial deberemos tener un hosting Linux y acceso a una cuenta mediante SSH. Durante el tutorial veremos los siguientes puntos:
- Compilando e instalando Subversion en el hosting
- Creando la carpeta del repositorio e iniciando Subversion
- Creando un proyecto de prueba
- Instalando WebSVN para acceder a Subversion vía web
- Accediendo a nuestro repositorio remotamente
- Cuales son las direcciones y usuarios para un servidor 1&1
El resultado de esta ardúa tarea podría ser como el siguiente: http://websvn.eridem.net
NOTA: Este tutorial sigue los pasos para instalar los programas en un hosting de la compañía 1&1. Es posible que en tu hosting no tengas los programas, accesos o librerías para compilarlo y ejecutarlo.
1. Compilando e instalando Subversion en el hosting
Lo primero que deberemos hacer es entrar en nuestra cuenta mediante SSH. Los datos de tu usuario y contraseña te los debe proporcionar la empresa. Imaginemos que el usuario es “user” y la contraseña es “pass” y la máquina dónde esta nuestro espacio es “host”. Ejecutaremos en consola:
- ssh user@host
Cuando nos pida la contraseña, escribiremos “pass” para poder entrar. Una vez que estamos en nuestra cuenta, nos descargaremos las fuentes de Subversion (comprobar en la web la versión actual) y las descomprimiremos:
- wget http://subversion.tigris.org/downloads/subversion-1.5.4.tar.bz2
- tar jvxf subversion-*
- rm subversion-*.bz2
- cd subversion-*
Lo siguiente será compilarlo e instalarlo. Para poder instalarlo, lo instalaremos en nuestra carpeta $HOME:
- ./configure –prefix=$HOME
- make
- make install
Ahora añadiremos la dirección de la instalación de Subversion a la variable de entorno $PATH para que sea accesible desde cualquier lugar y así ejecutar sus programas:
- cd ~
- vi .bashrc
Añadiremos las siguientes lineas en el editor de texto:
- PATH=$PATH:$HOME/bin
- export PATH
Guardamos y cerramos el editor.
2. Creando la carpeta del repositorio e iniciando Subversion
Lo que haremos a continuación será crear una carpeta dónde meteremos todos nuestros proyectos e indicaremos a Subversion que ese será nuestra carpeta de repositorios. La carpeta podrá ser cualquiera, pero recomiento que esté dentro de la carpeta de nuestro home. Así pues, en este tutorial crearemos una carpeta llamada “projects”:
- cd ~
- mkdir projects
- cd projects
- svnserve -d -r .
3. Creando un proyecto de prueba
Más adelante escribiré un tutorial básico de como usar Subversión. Ahora, lo único que necesitamos, será crear un nuevo proyecto en nuestro repositorio y añadir algún archivo.
Primero crearemos un proyecto cualquiera en nuestra carpeta de usuario. Por ejemplo, crearemos un proyecto que tenga un archivo “hola.txt” con el contenido “hola”:
- cd ~
- mkdir prueba
- cd prueba
- echo “hola” > hola.txt
Ahora crearemos un repositorio para nuestro proyecto en Subversion y subiremos el que acabamos de crear como version 1.
- cd ~/projects
- svnadmin create prueba
- svn import $HOME/prueba file://$HOME/projects/prueba -m “Version inicial”
Como podemos ver, hemos creado un proyecto en nuestro repositorio llamado “prueba” y le hemos enviado una nueva copia de nuestro proyecto para que la tome como proyecto principal.
4. Instalando WebSVN para acceder a Subversion vía web
Desde nuestro navegador, nos descargaremos la última versión de WebSVN desde su página oficial:
http://websvn.tigris.org/servlets/ProjectDocumentList
lo descomprimiremos y editaremos el archivo “/include/distconfig.php”, el cual cambiaremos las siguientes líneas:
- // $config->setSVNCommandPath(’Path/to/svn and svnlook/ e.g. c:\program files\subversion\bin’);
- // $config->setDiffPath(’Path/to/diff/command/’);
- // $config->setSedPath(’Path/to/sed/command/’);
- // $config->setTarPath(’Path/to/tar/command/’);
- // $config->setGZipPath(’Path/to/gzip/command/’);
- // $config->parentPath(’Path/to/parent (e.g. c:\svn)’);
Por estas otras:
- $config->setSVNCommandPath(‘/direccionDeTuHome/bin/’);
- $config->setDiffPath(‘/usr/bin/’);
- $config->setSedPath(‘/bin/’);
- $config->setTarPath(‘/bin/’);
- $config->setGZipPath(‘/bin/’);
- $config->parentPath(‘/direccionDeTuHome/projects/’);
Como podemos ver, hemos quitado las líneas de comentarios al principio de las instrucciones y hemos asignado las rutas de los programas que utilizará. Hay que fijarse bien de poner la dirección de tu carpeta de usuario correctamente, ya que en este caso yo no he puesto nada porque no puedo saber esa dirección (lo que está en negrita es lo que debes cambiar).
Una vez cambiada la configuración del archivo lo renombraremos el archivo “distconfig.php” a “config.php” y lo subiremos a nuestro hosting. Ahora ya tendréis un gestor de SVN visual y vía web.
5. Accediendo a nuestro repositorio remotamente
Una vez que tenemos nuestro Subversion instalado y hemos creado un proyecto de prueba, podremos acceder a éste usando SSH.
Para bajarse la última versión de nuestro proyecto “prueba”, entraremos en consola y escribiremos:
- svn co svn+ssh://usuario@host/direccionDeTuHome/projects/prueba
De esta forma, nos aparecerá una carpeta con la última copia del proyecto en nuestro ordenador. Los demás comandos que se pueden utilizar en Subversion, como la actualización, se hará con sus respectivos comandos, pero lo importante aquí era saber la URL de nuestro repositorio.
6. Cuales son las direcciones y usuarios para un servidor 1&1
Esto está fuera de lugar en este tutorial genérico para cualquier tipo de hosting. Pero si has entrado en este post porque tienes un hosting 1&1 y quieres montarlo ahí, te daré las direcciones del HOME y el usuario que debes poner.
La dirección para entrar en un repositorio creado en la carpeta “projects” de tu Home mediante subversión será:
- svn+ssh://tuUsuario:elNombreDeDominioQueTeDanPorDefecto/kunden/homepages/xx/xxxxxxxxxx/htdocs/projects/tuProyecto
Así pues, en un ejemplo real como el mío, mi dirección es:
- svn+ssh://u47339777@eridem.net/kunden/homepages/6/d226538314/htdocs/projects/XMLTraceAdministrator
NOTA: Este tutorial sigue los pasos para instalar los programas en un hosting de la compañía 


June 7th, 2008 a las 12:23 am
Hola, instale el subversion con apache y webdav , y descargue el websvn por aptitude , sale un wizard que permite configurarlo , sin embargo no me funciona, sigue saliendome la interfaz que proporciona por defecto el apache (que es bien fea) creo que el error podria estar en las rutas, mi archivo config.inc quedo configurado así:
$config->setSVNCommandPath(’/etc/subversion/’);
#$config->setDiffPath(’/usr/bin/’);
#$config->setSedPath(’/bin/’);
#$config->setTarPath(’/bin/’);
#$config->setGZipPath(’/bin/’);
$config->parentPath(’/usr/local/svn/’);
Lo que me parece extraño es el directorio /bin , el cual no lo tengo por nignun lado, sin embargo yo lo coloque , pero no hace nada .
Saludos
June 7th, 2008 a las 12:55 am
Hola,
Te recomiendo que te bajes el websvn desde la página que he puesto en el manual. Después lo descomprimes en la carpeta “/var/www/” de tal forma que la ruta te quede así: /var/www/websvn” y sigues los pasos de este manual para configurarlo. De esta forma no dependemos del aptitude por posibles fallos que yo ahora desconozco (ya que yo no lo hice así y no te puedo decir con seguridad).
Asegurate que las rutas del archivo de configuración están correctas (la dirección del svn, los repositorios, la carpeta bin), ya que estas carpetas estaban de acuerdo a la configuración de mi ordenador, pero puede variar en el tuyo.
Prueba, si no te sale, me das otro “toque” :)
Saludos.
June 9th, 2008 a las 3:22 pm
Hola de nuevo, cuando menciona “Una vez cambiada la configuración del archivo lo renombraremos a “config.php” (quitándole el “dist” del principio) y lo subiremos a nuestro hosting”, especificamente en que carpeta debo colocar el archivo??? voy a probar en /var/www/ a ver si funciona, pero no estoy seguro donde lo debo colocar.
June 9th, 2008 a las 5:38 pm
Hola Sergio,
La carpeta que contiene la web del svn (creo que se llama websvn) debería estar en /var/www/. Cuando lo renombras, lo dejas en la misma carpeta de dónde está y esa misma carpeta muévela a la dirección /var/www/, que es la dirección dónde nuestro ordenador tiene alojadas las páginas web.
Imaginemos que la carpeta se llama “websvn” (es que ahora mismo no sé el nombre exacto), pues coges esa carpeta y la transladas a /var/www/. Una vez que la tienes ahí, pones el navegador y escribes “http://localhost/websvn/”.
Espero que te funcione, en otro caso vuelve a contactar conmigo, ok?
Saludos.