Instalación y configuración Trac con soporte Subversion

por el 01/09/12

Llegamos a la última parte de esta guía, la instalación y configuración de Trac

Trac es un front-end para nuestros repositorios Subversion, soporta otros sistemas, en el que podremos ver los cambios realizados entre versiones de nuestros proyectos, así como un sistema de tickets y una pequeña Wiki.

Descargamos Python desde aquí. Para esta guía hemos usado la versión 2.7.3. Importante, bajar la versión de 32 bits.

A continuación descargamos el script de Setuptools desde aquí y lo guardamos en la carpeta donde instalamos Python. Por defecto C:\Python27. Setuptools es un sistema de repositorios para módulos Python.

Para instalar los módulos necesarios, abrimos un terminal y escribimos.

cd C:\Python27
python ez_setup.py setuptools Genshi Babel pygments Trac

Junto a Trac hemos incluido un par de plugins que mejoran la experiencia de Trac

  • Babel Añade soporte de idiomas a Trac (Español incluido).
  • pygments Para resaltado de código según el lenguaje.

Bajamos los Python bindings de subversion desde la página de Alagazam, el fichero correspondiente a nuestra versión de Python, Python 2.7 bindings. Al descomprimirlo habrá una carpeta llamada python, y dentro de esta 2 carpetas, libsvn y svn, copiamos esas 2 carpetas a C:\Python27\Lib\site-packages

En un terminal escribimos

sudo apt-get install -y trac

En un terminal escribimos

sudo yum install -y trac subversion-python

Ya tenemos Trac listo para usar, ahora vamos a integrarlo en Apache.

Bajamos el mod de Apache WSGI de aquí. Lo guardamos en la carpeta de módulos de Apache, Apache2/modules

y lo renombramos a mod_wsgi.so.

(Si has instalado PHP o Subversion siguiendo nuestro manual sáltate este punto) Nos dirigimos al archivo de configuración de Apache, Apache2\conf\httpd.conf y vamos al final del documento y añadimos.

# Addons config
Include conf/addons/*.conf

Dentro del directorio de configuración creamos una nueva carpeta llamada addons y dentro de esta un archivo trac.conf. Abrimos el archivo y escribimos.

LoadModule wsgi_module modules/mod_wsgi.so

WSGIScriptAlias /trac D:/server/trac/trac.wsgi


WSGIApplicationGroup %{GLOBAL} Order deny,allow Allow from all

Dentro de nuestra carpeta server, creamos otra llamada trac y en ella creamos un archivo de nombre trac.wsgi. Abrimos el archivo y escribimos.

import sys
sys.stdout = sys.stderr

import os
os.environ['TRAC_ENV_PARENT_DIR'] = 'D:/server/trac'
os.environ['PYTHON_EGG_CACHE'] = 'D:/server/trac/.eggs'

import trac.web.main

application = trac.web.main.dispatch_request

TRAC_ENV_PARENT_DIR corresponde a la ruta donde se almacenarán los archivos de nuestro proyecto en Trac. PYTHON_EGG_CACHE corresponde a la ruta donde se almacenará la cache, nuestra recomendación es guardarlo en una subcarpeta del directorio padre de Trac.

Ahora tenemos que añadir svn al path del sistema, para ello abrimos una consola y escribimos:

setx /m Path "%PATH%;D:\server\svn-win32\bin"

Pulsamos sobre Variables del sistema y en la sección de sistema buscar Path. Teniéndolo seleccionado, pulsamos Editar y al final añadimos.

Por último, de nuestra carpeta de binarios de Subversion, D:\server\svn-win32\bin copiamos el archivo libapr-1.dll a la carpeta de binarios de Apache, D:\server\Apache2\bin, reemplazando el existente.

En un terminal escribimos

sudo apt-get install -y libapache2-mod-wsgi

Con permisos de root, abrimos el fichero /etc/apache2/mods-enabled/wsgi.conf. De bajo de <IfModule mod_wsgi.c> escribimos:

    WSGIScriptAlias /trac /var/trac/trac.wsgi
    
        WSGIApplicationGroup %{GLOBAL}
        Order deny,allow
        Allow from all
    

Ahora creamos una carpeta llamada trac dentro de /var, y dentro de la carpeta trac creamos un archivo llamado trac.wsgi. Abrimos el archivo y escribimos lo siguiente.

import sys
sys.stdout = sys.stderr

import os
os.environ['TRAC_ENV_PARENT_DIR'] = '/var/trac'
os.environ['PYTHON_EGG_CACHE'] = '/var/trac/.eggs'

import trac.web.main

application = trac.web.main.dispatch_request

Cambiamos el usuario de la carpeta trac que acabamos de crear para que apache pueda manejarla.

sudo chown -R www-data:www-data /var/trac

En un terminal escribimos

sudo yum install -y mod_wsgi

Con permisos de root, abrimos el fichero /etc/httpd/conf.d/wsgi.conf. Al final del archivo escribimos:

WSGIScriptAlias /trac /var/www/trac/trac.wsgi


    WSGIApplicationGroup %{GLOBAL}
    Order deny,allow
    Allow from all

Ahora creamos una carpeta llamada trac dentro de /var/www, y dentro de la carpeta trac creamos un archivo llamado trac.wsgi. Abrimos el archivo y escribimos lo siguiente.

import sys
sys.stdout = sys.stderr

import os
os.environ['TRAC_ENV_PARENT_DIR'] = '/var/www/trac'
os.environ['PYTHON_EGG_CACHE'] = '/var/www/trac/.eggs'

import trac.web.main

application = trac.web.main.dispatch_request

Para finalizar crearemos el proyecto para nuestro repositorio de prueba. Dentro de un mismo proyecto podemos añadir tantos repositorios como queramos.

sudo chown -R apache:apache /var/www/trac

Abrimos la consola y escribimos:

C:\Python27\Scripts\trac-admin D:\server\trac\prueba

Esto nos llevará a la consola python de trac. Para lanzar el asistente de creación de proyectos escribimos:

initenv

En primer lugar nos pregunta por el nombre del proyecto.

Proyecto de prueba

A continuación nos pregunta donde se guardará la base de datos. sin escribir nada pulsamos intro.

Cerramos trac-admin escribiendo:

exit

Ahora nos dirigimos a la carpeta donde creamos nuestro proyecto, en nuestro caso D:\server\trac\prueba, abrimos con cualquier editor de texto el fichero trac.ini que está dentro de la carpeta conf y añadimos al final del mismo:

[components]
tracopt.versioncontrol.svn.* = enabled

Ahora volvemos a conectar a la consola de trac escribiendo en consola:

C:\Python27\Scripts\trac-admin D:\server\trac\prueba

Para agregar nuestro repositorio escribimos.

repository add Prueba D:\server\svn\test svn

La sintaxis del comando repository add es: Nombre repositorio, ruta repositorio, tipo de repositorio.

Abrimos un terminal y escribimos:

sudo trac-admin /var/trac/prueba

Esto nos llevará a la consola python de trac. Para lanzar el asistente de creación de proyectos escribimos:

initenv

En primer lugar nos pregunta por el nombre del proyecto.

Proyecto de prueba

A continuación nos pregunta donde se guardará la base de datos. sin escribir nada pulsamos intro.

Cerramos trac-admin escribiendo:

exit

Ahora nos dirigimos a la carpeta donde creamos nuestro proyecto, en nuestro caso D:\server\trac\prueba, abrimos con cualquier editor de texto el fichero trac.ini que está dentro de la carpeta conf y añadimos al final del mismo:

[components]
tracopt.versioncontrol.svn.* = enabled

Ahora volvemos a conectar a la consola de trac escribiendo en consola:

sudo trac-admin /var/trac/prueba

Para agregar nuestro repositorio escribimos.

repository add Prueba /var/svn/test svn

La sintaxis del comando repository add es: Nombre repositorio, ruta repositorio, tipo de repositorio.

Abrimos un terminal y escribimos:

sudo trac-admin /var/www/trac/prueba

Esto nos llevará a la consola python de trac. Para lanzar el asistente de creación de proyectos escribimos:

initenv

En primer lugar nos pregunta por el nombre del proyecto.

Proyecto de prueba

A continuación nos pregunta donde se guardará la base de datos. sin escribir nada pulsamos intro.

Cerramos trac-admin escribiendo:

exit

Ahora nos dirigimos a la carpeta donde creamos nuestro proyecto, en nuestro caso D:\server\trac\prueba, abrimos con cualquier editor de texto el fichero trac.ini que está dentro de la carpeta conf y añadimos al final del mismo:

[components]
tracopt.versioncontrol.svn.* = enabled

Ahora volvemos a conectar a la consola de trac escribiendo en consola:

sudo trac-admin /var/www/trac/prueba

Para agregar nuestro repositorio escribimos.

repository add Prueba /var/www/svn/test svn

La sintaxis del comando repository add es: Nombre repositorio, ruta repositorio, tipo de repositorio.


Ya tenemos todo configurado, para comprobar que todo funcione correctamente introducimos en el navegador.

https://127.0.0.1/trac

Deberiamos obtener algo parecido a lo siguiente:






9 Respuestas para “Instalación y configuración Trac con soporte Subversion”

  1. Nyayukko

    02/09/12

    RT @PistachitosBlog: Instalación y configuración Trac https://t.co/xLSgMt9L

  2. Daniel

    24/04/13

    Segui los pasos sobre ubuntu 10.04 server y no corrio quizas falta algun paso.

    • Luis

      25/04/13

      Buenas Daniel, en que punto te falla? Sale algún mensaje de error?

    • Luis

      26/04/13

      Daniel, acabo de darme cuenta que el último paso estaba mal formateado y no se visualizaba bien, revisalo a ver si fuese tu problema.

  3. Maria

    16/07/13

    Hola buenas al poner esto en addons me sale un error al conectarme a Apache.

    LoadModule wsgi_module modules/mod_wsgi.so

    WSGIScriptAlias /trac D:/server/trac/trac.wsgi

    WSGIApplicationGroup %{GLOBAL} Order deny,allow Allow from all

    Si omito este archivo me funciona bien.

    Me da error en:
    WSGIApplicationGroup %{GLOBAL} Order deny,allow Allow from all
    Si quito la linea anterior y dejo solo:

    LoadModule wsgi_module modules/mod_wsgi.so

    WSGIScriptAlias /trac D:/server/trac/trac.wsgi

    Me dice que no tengo permisos para acceder a 127.0.0.1/trac

    A ver si puedes ayudar.
    Muchas gracias
    Un saludo

    • Luis

      16/07/13

      Buenas María,
      Había unos errores en las lineas de «directory» ya los he arreglado, verifica si era ese tu problema

      Un saludo

  4. Maria

    17/07/13

    Si muchas gracias se me ha solucionado el problema, pero ahora tengo otro en la siguiente instruccion:

    repository add Prueba D:\server\svn\test svn

    Me dice que el tipo de repositorio svn no esta soportado.

    Al ir a la pagina 127.0.0.1/trac me sale la pagina Avaliable Projects pero no me aparece en ningun sitio el proyecto de prueba creado.

    Gracias
    Un saludo

    • Luis

      17/07/13

      Buenas María,
      Te salió el error maldito xD

      No recuerdo como se solucionaba, me suena algo de mover unas DLL, pero no estoy 100% seguro. Cuando tenga un rato libre hago una instalación limpia.

      Un saludo

    • Luis

      18/07/13

      Buenas María, encontré los problemas, faltaba un paso en la preparación inicial del entorno
      ——————————-
      Bajamos los Python bindings de subversion desde la página de Alagazam (https://alagazam.net/), el fichero correspondiente a nuestra versión de Python, Python 2.7 bindings (https://sourceforge.net/projects/win32svn/files/1.8.0/apache22/svn-win32-1.8.0_py27.zip). Al descomprimirlo habrá una carpeta llamada python, y dentro de esta 2 carpetas, libsvn y svn, copiamos esas 2 carpetas a C:\Python27\Lib\site-packages
      ——————————-

      Finalmente, hay otro paso que hacer desde la versión 1.0 de trac, antes de ejecutar el comando repository add:
      ——————————-
      Ahora nos dirigimos a la carpeta donde creamos nuestro proyecto, en nuestro caso D:\server\trac\prueba, abrimos con cualquier editor de texto el fichero trac.ini que está dentro de la carpeta conf y añadimos al final del mismo:

      [components]
      tracopt.versioncontrol.svn.* = enabled
      ——————————-
      Con eso añadido solo tienes que volver a la consola de trac-admin y ejecutar el comando repository add como venias haciendo.

      Un saludo.

Responder a Nyayukko