InicioLinuxInstalacion de Subversion (SVN) Server en Debian

Instalacion de Subversion (SVN) Server en Debian

Linux8/9/2008

Breve Descripcion:


Subversion es un software de sistema de control de versiones. Es software libre bajo una licencia de tipo Apache/BSD y se le conoce también como svn por ser ese el nombre de la herramienta de línea de comandos. Una característica importante de Subversion es que los archivos versionados no tienen cada uno un número de revisión independiente. En cambio, todo el repositorio tiene un único número de versión que identifica un estado común de todos los archivos del repositorio en cierto punto del tiempo.

Instalación


1. Instalacion de Subversión y utilidades:

Primero instalamos los siguientes paquetes haciendo:

apt-get install subversion libapache2-svn libapache-mod-dav apache2 openssl gcc g++

2. Configuración del Apache2
2.1. Habilitación de SSL en Apache2

Para habilitar el Apache2 para que escuche en el puerto de SSL

a2enmod ssl
echo 'Listen 443' >> /etc/apache2/ports.conf


Generamos un Certificado SSL:

apache2-ssl-certificate

si el comando no existe, se lo puede descargar haciendo:

wget http://czarism.com/files/apache2-ssl.tar.gz

lo descomprimimos haciendo

tar zxvf apache2-ssl.tar.gz
mv apache2-ssl-certificate /usr/sbin
mv ssleay.cnf /usr/share/apache2
mkdir /etc/apache2/ssl


y luego generamos el certificado.

apache2-ssl-certificate

Por ejemplo se puede completar con:

Country Name (2 letter code) :AR
State or Province Name (full name) [Some-State]:Buenos Aires
Locality Name (eg, city) []:Buenos Aires
Organization Name (eg, company; recommended) []:Taringa
Organizational Unit Name (eg, section) []:Taringa
server name (eg. ssl.domain.tld; required!!!) []:taringa.net
Email Address []:[email protected]

2.2. Configuración de SSL en Apache2

Primero copiamos el archivo default en uno nuevo

cp /etc/apache2/sites-enabled/000-default /etc/apache2/sites-enabled/ssl

Modificarlo para que luzca de la siguiente forma:

NameVirtualHost *:443
<VirtualHost *:443>

Agregar bajo virtual host

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem
SSLProtocol all
SSLCipherSuite HIGH:MEDIUM

3. Puesta a punto de SVN
3.1. Estructura Inicial

Hacemos que nuestro directorio base sea /home/svn:

mkdir /home/svn
mkdir /home/svn/permisos
chown www-data:www-data /home/svn
chmod 750 /home/svn


Generamos el archivo con usuarios y contraseñas:

su www-data -c "htpasswd -c -m /home/svn/permisos/dav_svn.passwd root"

Creamos un repositorio

svnadmin create /home/svn/test
chown -R www-data:www-data /home/svn/test
chmod -R g+ws /home/svn/test


Copiamos el archivo authz de ejemplo y le agregamos el usuario root al repositorio test:

cp /home/svn/test/conf/authz /home/svn/permisos/dav_svn.authz
echo "[test:/]" >> home/svn/permisos/dav_svn.authz
echo "root = rw" >> home/svn/permisos/dav_svn.authz


NOTA: Es lo mismo usar htpasswd que htpasswd2

3.2. Archivos de Configuración

Configurar /home/svn/test/conf/svnserver.conf para que quede de la siguiente manera

### This file controls the configuration of the svnserve daemon, if you
### use it to allow access to this repository. (If you only allow
### access through http: and/or file: URLs, then this file is
### irrelevant.)
### Visit http://subversion.tigris.org/ for more information.

### These options control access to the repository for unauthenticated
### and authenticated users. Valid values are "write", "read",
### and "none". The sample settings below are the defaults.
anon-access = none
auth-access = read
auth-access = write
### The password-db option controls the location of the password
### database file. Unless you specify a path starting with a /,
### the file's location is relative to the conf directory.
### Uncomment the line below to use the default password file.
password-db = passwd
### The authz-db option controls the location of the authorization
### rules for path-based access control. Unless you specify a path
### starting with a /, the file's location is relative to the conf
### directory. If you don't specify an authz-db, no path-based access
### control is done.
### Uncomment the line below to use the default authorization file.
authz-db = authz
### This option specifies the authentication realm of the repository.
### If two repositories have the same authentication realm, they should
### have the same password database, and vice versa. The default realm
### is repository's uuid.
realm = Taringa Repository

Modificar /home/svn/test/conf/authz agregándole las siguientes líneas:

[/]
root = rw

Copiar los dos archivos al directorio de permisos

cp /home/svn/test/conf/svnserve.conf /home/svn/permisos
cp /home/svn/test/conf/authz /home/svn/permisos


4. Finalizacion de Apache2

Agregar en /etc/apache2/sites-enabled/ssl

<Location />
DAV svn
SVNParentPath /home/svn
AuthType Basic
AuthName "Taringa Subversion Repository"
AuthUserFile /home/svn/permisos/dav_svn.passwd
AuthzSVNAccessFile /home/svn/permisos/dav_svn.authz
Require valid-user
</Location>

Reiniciar Apache2

/etc/init.d/apache2 restart

5. Generación de Scripts

Estos scripts fueron hechos para simplificar la gestión del SVN, crearlos en /home/svn/permisos linkear contra /user/sbin

5.1. svnaddrep

#!/bin/sh
#
# svn projets creation
#
serv="https://127.0.0.1/"
cwd="/home/svn/"
if [ "$1" = "" ]; then
echo -n "Repository name: ";
read projet;
else
projet="$1";
fi
site="$serv$projet";
echo " svnadmin create $cwd$projet --fs-type fsfs";
svnadmin create $cwd$projet
echo " chown -R www-data:www-data $cwd$projet";
chown -R www-data:www-data $cwd$projet
cp /home/svn/permisos/authz $cwd$projet/conf
cp /home/svn/permisos/svnserve.conf $cwd$projet/conf
echo "[$projet:/]" >> /home/svn/permisos/dav_svn.authz;
echo "root = rw" >> /home/svn/permisos/dav_svn.authz;
echo -n "Add initial structure (root password requiered)?(y/n):";
while true; do
echo -n "Add initial structure (root password requiered)?(y/n):";
read yn;
case $yn in
[yY]* ) echo " svn mkdir $site/trunk $site/branches $site/tags -m
\"Subversion archive folder creation.\"";
svn mkdir $site/trunk $site/branches $site/tags -m "Subversion archive folder
creation.";break;;
[nN]* ) echo;exit;;
esac
done
echo "
##########################################
Finished!
Remember to add users...
##########################################";


5.2. svnadduser

#!/bin/sh
#
# svn user creation
#
if [ "$1" = "" ]; then
echo -n "Username:";
read user;
else
user="$1";
fi
su www-data -c "htpasswd -m /home/svn/permisos/dav_svn.passwd $user"


5.3. svndeluser

#!/bin/sh
#
# svn user creation
#
if [ "$1" = "" ]; then
echo -n "Username:";
read user;
else
user="$1";
fi
su www-data -c "htpasswd -D /home/svn/permisos/dav_svn.passwd $user"



Espero que les sirva, Saludos!

Fuentes:
http://es.wikipedia.org/wiki/Subversion
http://wiki.forum.nokia.com/index.php/Subversion_(SVN)_server_installation_guide
http://alephzarro.com/blog/2007/01/07/installation-of-subversion-on-ubuntu-with-apache-ssl-and-basicauth/
http://www.geocities.com/arhuaco/doc/subversion/apache-subversion-in-debian.html
Datos archivados del Taringa! original
28puntos
13,224visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
2visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

k
kelter8🇦🇷
Usuario
Puntos0
Posts1
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.