Instalación de Subversion y Apache en Ubuntu
Índice de contenidos.
- 1. Introducción
- 2. Entorno
- 3. Instalación de Subversion
- 4. Instalación de Apache
- 5. Configuración del repositorio
- 6. Añadir usuarios al Subversion
- 7. Creación del repositorio
- 8. Conclusión
1. Introducción
Este tutorial muestra los pasos necesarios para instalar un Subversion accesible a través de un servidor Apache en un sistema operativo Linux (concretamente Ubuntu).
Hay muchas formas de configurar el acceso y seguridad de Subversion, la que se muestra en este tutorial es una de ellas pero no necesariamente se considera la mejor.
2. Entorno.
El tutorial está escrito usando el siguiente entorno:
- Hardware: Portátil Asus G50Vseries (Core Duo P8600 2.4GHz, 4GB RAM, 320 GB HD).
- Sistema operativo: Ubuntu Desktop 8.04 (Hardy), Kernel: 2.6.24
- Subversion 1.4.6
- Apache 2.2.8
3. Instalación de Subversion
Para instalar subversion seguimos los pasos planteados en el siguiente tutorial de Alejandro.
Instalar Subversion
Los resumimos aquí:
apt-get install subversion subversion-tools
Creamos el usuario y grupo svn. Creamos el directorio /var/lib/svn donde almacenaremos el repositorio y le asignamos los permisos necesarios al grupo svn.
4. Instalación de Apache
Para hacer accesible nuestro subversion a través de HTTP vamos a instalar Apache. Para ello instalamos el módulo de apache-svn
apt-get install apache2 libapache2-svn
5. Configuración del repositorio
Para crear el repositorio lo haremos a través de la configuración de Apache. Para ello vamos al directorio /etc/apache2/mods-enabled y editamos el fichero dav_svn.conf
Descomentamos la línea y ponemos el nombre a nuestro repositorio, por ejemplo
Habilitamos el repositorio descomentando la línea DAV svn
Indicamos el path a nuestro repositorio SVNPath /var/lib/svn/repoJuan
Habilitamos la seguridad descomentando las siguientes líneas
AuthType Basic
AuthName «Subversion Repository»
AuthUserFile /etc/apache2/dav_svn.passwd
Bloqueamos el acceso al repositorio para que no sea accedido por ningún usuario que no esté permitido
Require valid-user
Finalmente el fichero queda así
# Uncomment this to enable the repository DAV svn # Set this to the path to your repository SVNPath /var/lib/svn/repoJuan # Alternatively, use SVNParentPath if you have multiple repositories under # under a single directory (/var/lib/svn/repo1, /var/lib/svn/repo2, ...). # You need either SVNPath and SVNParentPath, but not both. #SVNParentPath /var/lib/svn # Access control is done at 3 levels: (1) Apache authentication, via # any of several methods. A "Basic Auth" section is commented out # below. (2) Apache and , also commented out # below. (3) mod_authz_svn is a svn-specific authorization module # which offers fine-grained read/write access control for paths # within a repository. (The first two layers are coarse-grained; you # can only enable/disable access to an entire repository.) Note that # mod_authz_svn is noticeably slower than the other two layers, so if # you don't need the fine-grained control, don't configure it. # Basic Authentication is repository-wide. It is not secure unless # you are using https. See the 'htpasswd' command to create and # manage the password file - and the documentation for the # 'auth_basic' and 'authn_file' modules, which you will need for this # (enable them with 'a2enmod'). AuthType Basic AuthName "Subversion Repository" AuthUserFile /etc/apache2/dav_svn.passwd # To enable authorization via mod_authz_svn #AuthzSVNAccessFile /etc/apache2/dav_svn.authz # The following three lines allow anonymous read, but make # committers authenticate themselves. It requires the 'authz_user' # module (enable it with 'a2enmod'). Require valid-user
6. Añadir usuarios al Subversion
Para añadir los usuarios con permisos de acceso a nuestro repositorio los añadimos al grupo svn de la siguiente forma:
usermod -G svn juan
Para que el subversion pueda gestionar las credenciales de los usuarios creamos el fichero /etc/apache2/dav_svn.passwd que anteriormente habilitamos en el fichero de configuración del repositorio dav_svn.conf (nos pedirá introducir la contraseña para el usuario):
htpasswd -c /etc/apache2/dav_svn.passwd juan New password: Re-type new password: Adding password for user juan
7. Creación del repositorio
Ya únicamente nos queda crear el repositorio que configuramos anteriormente llamado repoJuan. Para ello utilizamos la herramienta svnadmin instalada anteriormente
mediante el paquete subversion-tools
svnadmin create /var/lib/svn/repoJuan
Una vez creado el repositorio es aconsejable crear los directorios base del subversrion trunk, tags y branches.
sudo svn mkdir -message="Directorios base del subversion" \ file:///var/lib/svn/repoJuan/trunk \ file:///var/lib/svn/repoJuan/tags \ file:///var/lib/svn/repoJuan/branches
Si todo ha ido bien nos aparecerá algo como
Commit de la revisión 1.
Por último queda dar permisos al usuario del Apache para que pueda acceder al repositorio
chown -R www-data:svn /var/lib/svn/
Ya solo nos queda reiniciar el Apache para que coja la configuración que acabamos de montar.
/etc/init.d/apache2 restart
Al reiniciar el Apache puede que nos de el siguiente error:
apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
Para solucionarlo editamos el fichero /etc/apache2/httpd.conf y le añadimos la línea:
ServerName localhost
Finalmente para acceder a nuestro repositorio entramos con el navegador a la dirección http://localhost/repoJuan
8. Conclusión
Como véis la instalación de Subversion y Apache no tiene mucho más misterio por lo que no hay excusas para montarlo en cualquier organización o incluso en cualquier proyecto personal que estemos realizando. De esta manera tendremos un control de versiones de nuestros archivos y estaremos siempre a salvo de pérdidas o errores.
Hola Juan, muy bueno el tutorial.
Quisiera saber si el Tortoisse es el mejor cliente para el Subversion, y si hay que agregar permisos o algo con las nuevas versiones de Subversion que incorporan apache.
Gracias, Diego.
Hola, muy buen tutorial… Tal vez esto pueda ser un aporte, me ha sido de mucha utilidad http://es.kioskea.net/faq/3872-instalacion-de-usvn saludos desde México!!
[…] Instalación de Subversion y Apache en Ubuntu […]
Buenas tardes quisiera saber como accesar a la informacion de los usuarios e informacion de los mismos en ubuntu