Instalación y configuración Trac con soporte Subversion
por Luis Zurro 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.
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
En un terminal escribimos
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:
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
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.
En un terminal escribimos
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.
Abrimos la consola y escribimos:
Esto nos llevará a la consola python de trac. Para lanzar el asistente de creación de proyectos escribimos:
En primer lugar nos pregunta por el nombre del proyecto.
A continuación nos pregunta donde se guardará la base de datos. sin escribir nada pulsamos intro.
Cerramos trac-admin escribiendo:
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:
Para agregar nuestro repositorio escribimos.
La sintaxis del comando repository add es: Nombre repositorio, ruta repositorio, tipo de repositorio.
Abrimos un terminal y escribimos:
Esto nos llevará a la consola python de trac. Para lanzar el asistente de creación de proyectos escribimos:
En primer lugar nos pregunta por el nombre del proyecto.
A continuación nos pregunta donde se guardará la base de datos. sin escribir nada pulsamos intro.
Cerramos trac-admin escribiendo:
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:
Para agregar nuestro repositorio escribimos.
La sintaxis del comando repository add es: Nombre repositorio, ruta repositorio, tipo de repositorio.
Abrimos un terminal y escribimos:
Esto nos llevará a la consola python de trac. Para lanzar el asistente de creación de proyectos escribimos:
En primer lugar nos pregunta por el nombre del proyecto.
A continuación nos pregunta donde se guardará la base de datos. sin escribir nada pulsamos intro.
Cerramos trac-admin escribiendo:
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:
Para agregar nuestro repositorio escribimos.
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:




Nacido en 1988. Desarrollador por vocación y técnico especializado en calidad y rendimiento por profesión. Desde pequeño he tenido muy claro que quería dedicarme al mundo de la informática.
Amante de los videojuegos, series, libros y gatos.