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.
Nyayukko
02/09/12
RT @PistachitosBlog: Instalación y configuración Trac https://t.co/xLSgMt9L
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.
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
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.