Instalacion y configuracion de un servidor de subversion (svn) en ubuntu 11.04

on domingo, 18 de diciembre de 2011
por Fernando Hoyos y Omar Alanis:




Requerimientos:
          Instalación de Ubuntu 11.04 



Requisitos:


  • Actualización de los repositorios de Ubuntu 11.04

                                   apt-get install update


  • Instalación de Apache 2

                                   sudo apt-get install apache



  • Probamos el Servidor Apache

                                  Iniciamos apache : /etc/init.d/apache2 start

En el navegador probamos el servidor con la dirección local 127.0.0.1 



Screenshot


Instalación


  • Subversión y Herramientas

                           sudo apt-get install subversion subversion-tools


  • Verificamos los módulos dav y dav_svn

                          a2enmod dav

cuando activamos dav, estamos asegurando que solo usuarios autorizados por subversión puedan accesar al repositorio.

Si no están instalados, los instalamos

                         sudo apt-get install libapache2-svn

Para asegurar los cambios reiniciamos Apache

                         /etc/init.d/apache2 restart



Configuración:

sin duda la parte mas difícil es la configuración, si no tenemos cuidado podemos pasar por un mal rato.

Agregamos un grupo para la subversión

                       sudo groupadd subversion

es muy importante crear un grupo especial para subversión por cuestión de los permisos de los usuarios que estén autorizados.


Ahora creamos el archivo que contendrá un password para el administrador de subversion

                       sudo htpasswd -c /etc/apache2/dav_svn.passwd user

aqui estamos creando un usuario y ademas con la cerradura -c estamos creando a su vez el archivo dav_svn.passwd, que es el que contendrá los usuarios autorizados a su vez que sus contraseñas, obviamente encriptadas por cuestión de seguridad.

Luego creamos el repositorio donde se versionara nuestro proyecto en los directorios correspondientes

                cd/var/www
                mkdir repos
               svnadmin create repositorioejemplo
               cd  repositorioejemplo (entramos al repositorio)

Despues de esto le damos los permisos necesarios que necesita el repositorio para que los usuarios de subversion puedan accesar sin problemas.

vamos a utilizar el comando chown que sirve para agregar permisos a un determinado usuario o grupo o ambos para que puedan accesar al repositorio

               sudo chown -R www-data:subversion /var/www/repos/repositorioejemplo 

               sudo chmod -R 770 /var/www/repos/repositorioejemplo

Tal ves nos pueda sacar de onda la cerradura -R, pero lo unico que hace es que asigne los permisos y herede a todos los archivos o subcarpetas del repositorio.

aqui estamos asignando permisos al repositorio que el usuario de apache (www-data) y al grupo subversión para que todos los usuarios que accesen via web se autentiquen con su usuario del grupo subversión.

Hay que tener mucho cuidado ya que si asignamos de forma errónea los permisos no nos dejara accesar al repositorio.


si todo a salido bien, nos debe de aparecer la siguiente imagen.




repositorioejemplo


y si algo salio mal, nos debería de aparecer la siguiente imagen:





error

Importar nuestro primer proyecto al repositorio.


Una vez que tenemos configurado nuestro repositorio, ahora lo que tenemos que hacer es importar nuestro proyecto.


para esto, lo primero que tenemos que hacer es crear una carpeta, no importa en la posicion que estemos.


             mkdir proyecto1


Accesamos al folder proyecto1


           cd proyecto1
   
y luego lo que tenemos que hacer es crear un archivo y ponerle una descripción de ejemplo.
   
    nano ejemplo


nano


ahora si ya tenemos nuestro primer proyecto, lo que tenemos que hacer ahora es hacer el primer import al repositorio:




           sudo svn import proyecto1/ file:///var/www/repos/repositorioejemplo/proyecto1


tambien lo podemos hacer por el protocolo http:




           sudo svn import proyecto1/ http://localhost/svn/repositorioejemplo/proyecto1












import


Hecho esto, veremos en la consola que ya se hizo el primer commit:


addIngCommit


creo que es necesario aclarar que existen varios protocolos para utilizar svn, uno de ellos es el file:/// este protocolo solo se utiliza localmente en el servidor.


tambien tenemos el protocolo http:// este protocolo es el que nosotros utilizaremos con dav, para accesar via web.


tambien existe el protocolo https:// este protocolo es que se utiliza con encriptacion ssl, este no lo utilizaremos, tal ves en una chance me anime a realizar una instalacion y configuracion usando certificados ssl.


tambien contamos con el protocolo svn, pero no lo e utilizado.


Ya una vez hecho el import, es necario darle permisos, por que vemos que pasa cuando intentamos accesar al repositorio una vez hecho el import local.


vemos que pasa si no cambiamos los permisos en el repositorio.


primero que nada, accesamos via url: 127.0.0.1/svn/repositorioejemplo/proyecto1
y nos autenticamos.


autenticar


una vez autenticados, nos saldra este error:


error


pero pues no hay que preocuparnos, la solucion es darle nuevamente los permisos al repositorio.




         sudo chown -R www-data:subversion /var/www/repos/repositorioejemplo 

         sudo chmod -R 770 /var/www/repos/repositorioejemplo




Tengo que confezar que tardamos como 5 dias para resolver este error.


Ahora solamente necesitamos volver a accesar al repositorio.


Y veamos que nos sale:


revision1



1 comentarios:

Anónimo dijo...

excelente homs XD, salu2

Publicar un comentario