Subversión por defecto no viene con la instalación de Fedora, por lo que hay que instalar los paquetes y dependencias que pudiera requerir para dichos paquetes. Lo primero que se debe hacer es ir a la opción Add/Remove Software (agregar o quitar software) para hacer una búsqueda de los paquetes y asegurarnos que no están instalados actualmente.

Una vez abierta la ventana, introducimos la palabra “subversion” en el cuadro de texto y damos clic en el botón “Find”. Posteriormente se mostrará una lista de paquetes relacionados con subversion, pero solo necesitaremos algunos, los cuales aparecerán más abajo.
A continuación se muestra la lista de paquetes necesarios que hay que seleccionar para tener instalado el servidor Subversion (deben buscarse entre todos los paquetes existentes):
El paquete Apache httpd module for Subversion Server se requiere para poder acceder al repositorio a través del servidor web apache, ya sea para checar el código de los archivos a través del navegador Web, o para poder darle Checkout a un proyecto desde Eclipse y trabajar con él.
Graphical interface for the Subversión revision control system es un paquete para instalar una pequeña aplicación gráfica llamada rapidsvn para darle mantenimiento al repositorio y examinar las revisiones de los proyectos, no es indispensable pero puede ser de gran ayuda si llegara a ocurrir algún problema con el plugin de Eclipse para subversion.
A Modern Concurrent Version Control System es el paquete que contiene el servidor de Subversion.
Tool to post subversion repository commit information se trata de una aplicación empleada para enviar información a través de correos electrónicos referente a las revisiones de los archivos almacenados en el repositorio, con esto, los usuarios pueden enterarse de los cambios que ha sufrido cierto archivo y del usuario que ha realizado dichos cambios. Se deja como tarea de investigación la configuración de esta aplicación ya que no es abarcada en el presente tutorial, pero se hace mención de ella porque sería de gran ayuda para el equipo de desarrollo o de proyecto contar con ésta aplicación.
Después de haber repasado brevemente los paquetes a instalar y haberlos seleccionado, damos clic en el botón Apply (aplicar). Empezará a buscar las dependencias de los paquetes y si llegara a ocurrir que no están instaladas, nos saldrá una ventana informándonos sobre los paquetes adicionales que tendrán que ser instalados:
Daremos clic en Install y nos saldrá la indicación de que los paquetes están siendo descargados.
Ya que se han descargado, se nos indica que los paquetes están siendo instalados.
Al terminar de instalarse los paquetes se nos pregunta si queremos correr la aplicación rapidsvn, por lo que ignoramos la petición y hacemos clic en el botón Close.

Una vez que hemos instalado el servidor de subversion, procedemos con el inicio de la configuración del repositorio, la creación de usuarios y los permisos para dichos usuarios. Por lo que vamos a crear las carpetas necesarias para ello: svn como carpeta principal, repos para los proyectos, users para los usuarios y permissions para especificar los permisos que le daremos a cada usuario. Estas últimas 3 carpetas deben estar dentro de la carpeta svn.
Ya que configuraremos Subversion para acceder a él a través de la Web , necesitaremos darle permisos al usuario apache para que pueda acceder a las carpetas recién creadas. Por lo que ejecutamos el siguiente comando:
Después de esto, ejecutamos el siguiente comando para darnos cuenta que efectivamente el propietario de dichos directorios cambió a ser el usuario apache.
Es tiempo ahora de indicarle al servidor Web Apache dónde puede encontrar los repositorios de Subversion. Para ello necesitamos modificar el archivo de configuración subversion.conf, el cual fue creado al momento de instalar el paquete de subversion. Se ubica en esta dirección: /etc/httpd/conf.d/
Ejecutamos el comando # vi subversion.conf y nos desplazamos al final del archivo con las flechas del teclado o con la tecla AvPág.
Para modificar el archivo presionamos la tecla “i” para iniciar el modo de edición, lo siguiente será habilitar la etiqueta "Location" descomentando algunas líneas y dejándolas como se muestra a continuación:
Nótese que en la etiqueta "Location" se ha establecido la ruta donde residirán nuestros repositorios, la cual creamos con anterioridad. Después de hacer las modificaciones presionamos la tecla Esc seguida de : (dos puntos) y luego wq para guardar y salir del archivo.
Lo siguiente será reiniciar el servidor apache:
Ahora procederemos a crear nuestro primer repositorio. Para ello nos cambiamos al directorio repos y ejecutamos los siguientes comandos:
Tal como lo hicimos con las primeras carpetas que creamos, hemos cambiado el usuario propietario del repositorio test a apache.
Para comprobar que hemos realizado correctamente los pasos descritos, abriremos el navegador Web y proporcionaremos la URL correspondiente para acceder al repositorio recién creado, http://192.168.1.27/svn/repos/test: (lo más común es que en lugar de la IP descrita ustedes tengan que poner localhost)
El repositorio nos dice que está en la revisión 0, es decir, no se ha subido ningún tipo de cambio al repositorio. La URL la componen la IP del servidor, seguida de /svn/repos/ que es la ruta que especificamos en el archivo de configuración de subversion y por último la carpeta correspondiente al repositorio que creamos test.
Con la configuración actual, cualquier usuario sin autorización o ajeno al equipo de desarrollo o de proyecto que averiguara la URL del repositorio, podría entrar y echarle un vistazo o simplemente bajar una copia del proyecto y robar algo de código. Por consiguiente, se tienen que aplicar algunas medidas de seguridad para los repositorios que vayamos a crear.
Lo primero que haremos será crear un archivo para almacenar a los usuarios con su password. Este archivo residirá dentro de la carpeta users, creada anteriormente. Así que ejecutamos el siguiente comando:
Al usar el comando htpasswd, se crea el archivo passwords y se agrega al usuario user_test. Posteriormente se nos pide que introduzcamos el password para dicho usuario y la confirmación del mismo.
Lo siguiente será decirle a Apache en qué ruta se encuentra nuestro archivo de usuarios para el repositorio. Por consiguiente deberemos modificar una vez más el archivo subversion.conf y dejarlo como se muestra a continuación:
Después de guardar el archivo se procede a reiniciar el servidor apache con el siguiente comando: #/sbin/./service httpd restart
Ahora vayamos de nuevo al navegador y actualicemos la página del repositorio. Debe aparecernos una ventana para loguearnos con el nombre de usuario y contraseña del usuario creado.
El último paso es definir quién está permitido hacer qué en los repositorios, es decir, no podemos dejar que todos los usuarios tengan acceso a todos los repositorios y que puedan escribir o hacer cambios en ellos. Habrá usuarios a quienes solo se les dé acceso de lectura para ciertos repositorios y habrá otros quienes tengan acceso de lectura y escritura.
Para ello, vamos dándole permisos de lectura y escritura al usuario user_test creando el archivo svnauthz.conf dentro de la carpeta permissions.
El archivo debe quedar de la siguiente manera:
Una vez guardado, debemos indicarle a Apache dónde ubicar el archivo de autorización. De nueva cuenta editamos el archivo subversion.conf agregándole la línea siguiente:
Por último reiniciamos una vez más el servidor Apache:
Listo! Con esto ya tenemos configurado nuestro repositorio, además de haber creado un archivo de usuarios y otro de autorizaciones para tener restringido el acceso y evitar que cualquier usuario no deseado ande husmeando donde no debe.






















No hay comentarios:
Publicar un comentario