Sie sind auf Seite 1von 3

Tutorial para instalar Subversion sobre Ubuntu Linux

1.- Debemos instalar Apache, Subversion y la librería para comunicar Apache con Subversion
– Abrimos una consola e introducimos en esta lo siguiente:
$> sudo aptitude install apache2 subversion subversion-tools
libapache2-svn

2.- Creamos la carpeta donde crearemos nuestros repositorios, lo haremos así por si necesitamos
crear varios repositorios
– En consola escribimos lo siguiente
$> sudo mkdir /ruta/de/la/raiz/de/repositorios

3.- Configuramos la librería de Apache para subversion


– Editamos el archivo dav_svn.conf de la carpeta /etc/apache2/mods-enabled/ y lo dejamos
como lo siguiente. (Señalo en verde lo que tienes que fijaros que está igual)
 dav_svn.conf - Example Subversion/Apache configuration
#
# For details and further options see the Apache user manual and
# the Subversion book.
#
# NOTE: for a setup with multiple vhosts, you will want to do this
# configuration in /etc/apache2/sites-available/*, not here.

# <Location URL> ... </Location>


# URL controls how the repository appears to the outside world.
# In this example clients access the repository as http://hostname/svn/
# Note, a literal /svn should NOT exist in your document root.
<Location /svn>

# Uncomment this to enable the repository


DAV svn

# Set this to the path to your repository


#SVNPath /var/lib/svn
# 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 /ruta/de/la/raiz/de/repositorios

# 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 <Limit> and <LimitExcept>, 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

Manual Subversion Ubuntu, creado por Naru el 20 ­ Agosto ­ 2007, modificado el 24 ­ Agosto ­ 2007
# 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').
#<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
#</LimitExcept>
</Location>

– Creamos un archivo para definir los usuarios que pueden acceder a los repositorios, tanto
leerlos como modificarlos. Primero en consola activaremos los módulos necesarios para las
autentificaciones ejecutando los siguientes comandos.
$> a2enmod
$> Module name? auth_basic
$> a2enmod
$> Module name? authn_file
$> a2enmod
$> Module name? authz_user

– Creamos ahora un archivo donde guardaremos contraseñas y usuarios mediante htpasswd.


$> sudo htpasswd -cb /etc/apache2/dav_svn.passwd
nombre_usuario contraseña_usuario

– Luego para añadir nuevos usuarios (si quieres forzar que las constraseñas se encripten en
MD5, en la instrucción anterior y en esta debes añadir tras la -b una m, -bm)
$> sudo htpasswd -b /etc/apache2/dav_svn.passwd
nombre_usuario_nuevo password_usuario_nuevo

– Para eliminar un usuario


$> sudo htpasswd -D /etc/apache2/dav_svn.passwd
nombre_usuario

4.- Creamos el repositorios


– Creamos una carpeta donde irá nuestro repositorio, evidéntemente dentro de la carpeta raiz
de repositorios
$> sudo mkdir /raiz/de/repositorios/nombre_repositorio

– Le indicamos a Subversion de que esta carpeta es un repositorios


$> svnadmin create /raiz/de/repositorios/nombre_repositorio

– Añadimos la carpeta raiz de los repositorios al grupo de trabajo de apache para que pueda
accederse.
$> sudo chown www-data:www-data /raiz/repositorios

– Le damos permiso de escritura a la carpeta del repositorio


$> sudo chmod 766 /raiz/repositorios/repositorio

Manual Subversion Ubuntu, creado por Naru el 20 ­ Agosto ­ 2007, modificado el 24 ­ Agosto ­ 2007
5.- Activamos Apache y verificamos que el repositorio ha sido creado
– Activamos Apache
$> sudo /etc/init.d/apache2 start

– En un explorador de internet accedemos al repositorio, y si todo ha ido bien, nos deberia


pedir un usuario y una constraseña que debe ser uno de los que creamos anteriormente y
accedemos al repositorio.
http://localhost/raiz_repositorios/repositorio

6.- Grupos y usuarios


– Si queremos restringir los repositorios a una serie de grupos a los cuales pertenezcan unos
usuarios concretos debemos realizar una serie de modificaciones al archivo
/etc/apache2/mods-enabled/dav_svn.conf. Símplemente debemos descomentar la siguiente
linea.
# AuthzSVNAccessFile /etc/apache2/dav_svn.groups
(lo de /etc/apache2/dav_svn.groups no tiene por qué estar asi, puede aparecer otra ruta, lo
importante es descomentarlo en principio)
– Lo siguiente es indicar una ruta a continuacion de lo descomentado antes, en la que vamos a
crear un archivo de texto plano donde indicaremos los grupos que pueden acceder a ciertos
repositorios y los usuarios que pertenecen a estos grupos. Mejor crear este archivo en la
carpeta de /etc/apache2 y el nombre que quieras, pero debes indicarlo en el dav_svn.conf
– En el archivo que crees debe aparecer lo siguiente

[groups]
nombre_del_grupo: usuario1, usuario2, usuarioN

[nombre_repositorio:/]
@nombre_grupo_permitido: (permisos de lectura: r, y/o escritura: w)

(Repetir con todos los repositorios y grupos que quieras. Usuario1, usuario2 y usuarioN,
deben ser el nombre de usuarios que creamos en el archivo dav_svn.passwd.
Nombre_repositorio debe de ser el nombre de una de las carpetas que tengas dentro de la
carpeta raíz de los repositorios)

– Ejemplo de archivo dav_svn.groups

[groups]
grupo1: pepe, paco, maria
grupo2: luis, marta

[repo1:/]
@grupo1: rw
@grupo2: r

[repo2:/]
@grupo2: rw

[...]

- Guardamos y reiniciamos Apache (/etc/init.d/apache2 restart)

Manual Subversion Ubuntu, creado por Naru el 20 ­ Agosto ­ 2007, modificado el 24 ­ Agosto ­ 2007

Das könnte Ihnen auch gefallen