InicioLinuxSubversion, instalación y configuración en UBUNTU Server

Subversion, instalación y configuración en UBUNTU Server

Linux6/23/2010




1. Instalacion

Lo primero que haremos será instalar las herramientas necesarias y comprobar si nuestro Ubuntu ya tiene instalado algunos modulos necesarios. Para instalar las herramientas necesarias:

root@mylinux:~$ sudo apt-get install subversion subversion-tools

Si utilizaremos svn a través de internet (lo cual es una de sus grandes cualidades) necesitaremos comprobar que Apache tenga instalado los módulos dav y dav_svn, para esto, verificamos si ya los tenemos instalados:

root@mylinux:~$ a2enmod dav
root@mylinux:~$ a2enmod dav_svn


y si no están instalados, los instalamos:

root@mylinux:~$ sudo apt-get install libapache2-svn


2. Configuracion

Crearemos un grupo y los usuarios necesarios para manejar los permisos que tengan que ver con subversion . Para crear el grupo (en este caso lo llame subversion , pero puedes llamarlo como quieras):

root@mylinux:~$ sudo groupadd subversion

y para agregarle usuarios a el grupo recien creado los cuales queremos que usen de algun modo nuestro servidor:

root@mylinux:~$ sudo usermod -G subversion myuser1
root@mylinux:~$ sudo usermod -G subversion myuser2


El siguiente paso será crear los archivos que contendrán los usuarios anteriores con sus passwords para poder utilizar svn , para ello:

root@mylinux:~$ sudo htpasswd -c /etc/apache2/dav_svn.passwd myuser1
root@mylinux:~$ sudo htpasswd /etc/apache2/dav_svn.passwd myuser2


La primera línea lleva la opción -c por la simple razón de que crea el fichero. Los demás usuarios se añaden a el fichero creado. Cada vez que agreguemos un usuario, nos irá pidiendo su contraseña y la confirmación de la misma.


3. Creación y configuración de un repositorio
En la mayoría de casos querremos tener más de un repositorio, por ejemplo uno para pruebas, y otros que sirvan a proyectos reales. Por eso crearemos un directorio padre (/var/www/ svn ) y dentro de él crearemos tantos un subdirectorio para el repositorio SVN de cada proyecto:

Directorio padre de los repositorios:

root@mylinux:~$ sudo mkdir /var/www/ svn

Directorio para las primeras pruebas con SVN . Crearemos tantos como sea necesario, aunque en este ejemplo sólo hacemos uno:

root@mylinux:~$ sudo mkdir /var/www/ svn /$REPOS

3.1 Crear estructuras de soporte svn en el repositorio:
Esto debemos repetirlo para cada subdirectorio que queramos que sirva como repositorio Subversion . Este comando crea un conjunto de ficheros necesarios para almacenar la información de versionado del proyecto y jamás deberíamos manipular su contenido directamente. Para ello tenemos comandos y aplicaciones que se encargarán de mantener la información adecuadamente.

root@mylinux:~$ sudo svnadmin create /var/www/ svn /$REPOS

3.2 Crear subdirectorios para el tronco, las ramas y las etiquetas (Opcional):
Típicamente los proyectos suelen estructurarse internamente manteniendo un "tronco" principal en un subdirectorio llamado "trunk" y las ramas derivadas del proyecto principal en un subdirectorio "branches". La carpeta "tags" se usa para las etiquetas. No es necesario crear estas carpetas, además se pueden crear más adelante cuando las necesitemos.

root@mylinux:~$ sudo svn mkdir -message="Preparando los direcotorios..."
file:///var/www/ svn /$REPOS/trunk
file:///var/www/ svn /$REPOS/tags
file:///var/www/ svn /$REPOS/branches


Le damos los correspondientes permisos a los repositorios que en mi caso han sido creados dentro de /var/www/ svn

root@mylinux:~$ sudo chown -R www-data: subversion /var/www/ svn /$REPOS
root@mylinux:~$ sudo chmod -R 770 /var/www/ svn /$REPOS



4. Habilitar y configurar WebDAV y SVN :

Configuraremos Apache para que use los repositorios, configuramos el archivo que gestiona el módulo de apache para el svn :

root@mylinux:~$ sudo gedit /etc/apache2/mods-available/dav_svn.conf

Dentro ponemos esta configuración, en este caso solo descomentaremos estas lineas, ya que las mismas estan comentadas en el archivo:

##
# SVN
#
<Location / svn >
DAV svn
SVNParentPath /var/www/ svn
AuthType Basic
AuthName "Repositorio Subversion del proyecto"
AuthUserFile /etc/apache2/dav_svn.passwd
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>
Si deseamos que el modo lectura no este accesible para cualquiera, (ya sea porque nuestro proyecto sea confidencial o no queramos que sea visto desde fuera, o lo que sea) basta con reemplazar la sección:

<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>


por

Require valid-user


Necesitamos reiniciar apache para que tome la nueva configuración.

root@mylinux:~$ sudo /etc/init.d/apache2 restart


5. Acceso mediante protocolo ( svn ://)

Cuando se haya creado el repositorio de Subversion , podrás configurar el control de acceso. Puedes editar el archivo /var/www/ svn /proyecto/conf/svnserve.conf para configurar el control de acceso. Por ejemplo, para configurar la autenticación, puedes descomentar las siguientes líneas en el archivo de configuración:

#
# password-db = passwd



Tras descomentar las líneas anteriores, podrás mantener la lista de usuarios en el archivo passwd. Para ello, edita el archivo passwd en el mismo directorio y añade el nuevo usuario. La sintaxis es la siguiente:

username = password

Ahora, para acceder a Subversion a través del protocolo personalizado svn ://, bien sea desde la misma máquina o desde otra diferente, debes ejecutar svnserver usando la orden svnserve. La sintaxis es la siguiente:

root@mylinux:~$ sudo svnserve -d --foreground -r /var/www/ svn /
# -d -- modo demonio
# --foreground -- ejecutar en primer plano (útil para depuración)
# -r -- raíz del directorio a servir


Definicion de los parametros utilizados
· -d ejecuta svnserve como un demonio.
· -r permite a los clientes no tener que escribir la ruta completa. Esto resulta más cómodo al cliente y aporta cierta seguridad al ocultar los detalles de donde están realmente los repositorios.


6. Configuracion del servicio como demonio

Se debe crear el fichero /etc/init.d/svnserve:

root@mylinux:~$ sudo nano /etc/init.d/svnserve

agregarle el siguiente contenido:

#! /bin/sh
set -e

# /etc/init.d/ svn : start and stop the SVN daemon

test -x /usr/bin/svnserve || exit 0

. /lib/lsb/init-functions

SVND_OPTS="-d -r /var/www/ svn /"
export PATH="${PATH:+$PATH:}/usr/bin:/bin"

case "$1" in
start)
log_begin_msg "Iniciando servidor SVN ..."
start-stop-daemon --start --quiet --exec /usr/bin/svnserve -- $SVND_OPTS || log_end_msg 1
log_end_msg 0
;;
stop)
log_begin_msg "Cerrando servidor SVN ..."
start-stop-daemon --stop --quiet --oknodo --exec /usr/bin/svnserve || log_end_msg 1
log_end_msg 0
;;

reload|force-reload)
log_begin_msg "Recargando servidor SVN "
start-stop-daemon --stop --signal 1 --quiet --oknodo --exec /usr/bin/svnserve || log_end_msg 1
log_end_msg 0
;;

restart)
log_begin_msg "Reiniciando servidor SVN ..."
start-stop-daemon --stop --quiet --oknodo --retry 30
start-stop-daemon --start --quiet --exec /usr/bin/svnserve -- $SVND_OPTS || log_end_msg 1
log_end_msg 0
;;

*)
log_success_msg "Usage: $0 {start|stop|reload|force-reload|restart}"
exit 1
esac

exit 0

NOTA: se deben dar los permisos 775 para que al arrancar se pueda acceder al demonio

root@mylinux:~$ sudo chmod 777 /etc/init.d/svnserve


Ahora sólo nos queda crear los enlaces simbólicos necesarios en la estructura /etc/rcx.d para que el servicio se arranque y se pare automáticamente al arrancara y parar el servidor. Para ello se hará:

root@mylinux:~$ sudo update-rc.d svnserve defaults

7. Instalar WebSVN

Instalamos WebSVN, si nos pide alguna configuración solo hay que recordar que el directorio de nuestros repositorios es /var/www/ svn /

root@mylinux:~$ sudo aptitude install websvn

**opcionial instalamos enscript, que nos sirve para el para coloreado de sintaxis en websvn

root@mylinux:~$ sudo aptitude install enscript

Movemos la carpeta de websvn que se intalo en /usr/share/ a /var/www/

root@mylinux:~$ sudo cp -r /usr/share/websvn/ /var/www/

Configuramos el módulo de apache para el websvn

root@mylinux:~$ sudo gedit /etc/apache2/mods-available/dav_svn.conf

y agregamos al final lo siguiente:

<Location /websvn/>
Options FollowSymLinks
order allow,deny
allow from all
AuthType Basic
AuthName " Subversion Repository"
</Location>


Guardamos y cerramos dav_svn.conf
Reiniciamos apache para que aplique las configuraciones.

root@mylinux:~$ sudo /etc/init.d/apache2 restart

Para configuraciones adicionales o reconfiguraciones podemos utilizar el comando dpkg-reconfigure websvn o irnos directamente al archivo de configuracion que esta en etc/websvn/svn_deb_conf.inc




8. Cómo corregir Apache - "apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName" Error en Ubuntu

Probablemente podría enfrentan el siguiente error misma mientras estaba de reiniciar el servidor Apache en Ubuntu

root@mylinux:~$ sudo /etc/init.d/apache2 restart
* Restarting web server apache2
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName




Para solucionar ese problema, tiene que editar el archivo httpd.conf. Abra el terminal y el tipo

root@mylinux:~$ sudo gedit /etc/apache2/httpd.conf

Por defecto el archivo httpd.conf estará en blanco. Ahora sólo tiene que añadir la siguiente línea al archivo

ServerName localhost


Finalmente reiniciar el servidor

root@mylinux:~$ sudo /etc/init.d/apache2 restart




ANEXOS

configurar ip fija en ubuntu server
sudo nano /etc/network/interfaces

auto eth0 (o la que corresponda)
iface eth0 inet static
address xxx.xxx.xxx.xxx (la ip que quieras que tenga)
netmask xxx.xxx.xxx.xxx (la mascara de red que nececitas)
gateway xxx.xxx.xxx.xxx (si estas atras de un router o un firewall)


despues tiras desde consola /etc/init.d/networking restart y listoooooo
para confirmar pones en la consola ifconfig eth0 y te deberia de
haber cambiado todo.
Cada vez que reinicies, los datos los va a tomar de
/etc/network/interfaces asique no vas a tener que tocarle nada mas.



Activar root en ubuntu
sudo passwd root


Datos archivados del Taringa! original
10puntos
2,869visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
2visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

p
programadorx🇦🇷
Usuario
Puntos0
Posts2
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.