Guía breve para instalación básica de TRAC. ¿Qué es TRAC? Yo lo definiría como un “documentador” pero la definición más técnica sería una wiki con sistema de seguimiento de errores para proyectos de desarrollo de software. Incorpora una interfaz para Subversion, una línea de tiempo que muestra los eventos actuales y pasados del proyecto en orden, etc. Más info en Trac.
Esta pequeña guía ha funcionado para CentOS 5.
Entorno a instalar
- Apache 2 utilizando mod_dav_svn
- Trac mediante Apache 2 con mod_python
- Repositorios de SVN en /srv/svn, accesible por http://server/svn/proyecto
- Proyectos de TRAC en /srv/trac, accesible por http://server/trac/proyecto
Requisitos
- Python >= 2.3
- Para sistemas RPM: python-devel 7 python-xml
- setuptools
- Base de datos: SQLite, PostgreSQL o MySQL (escogemos SQLite por recomendación de Trac Wiki)
- ClearSilver: opcional para algunos plugins que lo requieren Si queremos control de versiones necesitamos Subversion (versions recommended: 1.2.4, 1.3.2 or 1.4.2)
1. Instalamos subversion y el mod de SVN para Apache
# yum install subversion mod_dav_svn
Si las siguientes dos líneas no están presentes, añadelas (revisar subversion.conf en conf.d, porque puede que estén ahí)
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
2. Instalamos el mod para python, algunos paquetes necesarios a posteriori y ClearSilver del repositorio de Dag
# yum install mod_python
# yum install neon neon-devel python-devel swig
# wget Dag.Wieers.com/ClearSilver
# rpm -i clearsilver-0.10.4-1.el5.rf.i386.rpm
# wget Python ClearSilver
# rpm -i python-clearsilver-0.10.4-1.el5.rf.i386.rpm
3. Algo que no aparece en ninguna de las guías es la instalación de SetupTools. Nada más alejado de la realidad que yo quiera o pretenda entender que significa y que hace SetupTools. Sólo sé que es necesario para instalar luego el Trac. No sé si soy el único, pero cada vez que entro en esa web me dan ganas de suicidarme. En fin, cosas que tiene uno. Para instalar SetupTools hacemos:
# wget http://peak.telecommunity.com/dist/ez_setup.py
# python ez_setup.py
4. Instalar Trac
# wget http://ftp.edgewall.com/pub/trac/Trac-0.11.2.1.tar.gz
# tar xfz Trac-0.11.2.1.tar.gz
# cd Trac-0.11.2.1
# python ./setup.py install
Ahora nos pregunta una serie de cosas: nombre de nuestro proyecto, tipo de base de datos(por defecto y recomendación, lo dejamos en default que es SQLite), path hacia los repositorios, path al proyecto, etc.
Creamos nuestro repositorio de SVN
# svnadmin create –fs-type fsfs /srv/svn/proyecto
Inicializamos un proyecto de TRAC
# mkdir /srv/trac/
# trac-admin /srv/trac/proyecto initenv
El path para el repositorio es /srv/svn/proyecto
Damos permisos a Apache sobre los directorios que requerimos.
# chown -R apache.apache /srv/svn/
# chown -R apache.apache /srv/trac/
Le decimos a Apache donde está el repositorio de SVN, creando configuración adicional para Apache
# vim /etc/httpd/conf.d/subversion.conf
<Location /svn/proyecto>
DAV svn
SVNPath /srv/svn/
AuthType Basic
AuthName “Repositorio de SVN”
AuthzSVNAccessFile /srv/svn/svn-acl-conf
AuthUserFile /srv/svn/.htpasswd
Require valid-user
</Location>
Creamos un fichero .htpasswd, donde añadimos los usuarios y su password con acceso al repositorio
# touch /srv/svn/proyecto.htpasswd
# htpasswd -m /srv/svn/proyecto.htpasswd
Creamos una Lista de Control de Acceso (ACL) para el repositorio
# vim /srv/svn/svn-acl-conf
Y añadimos las siguientes directivas
[proyecto:/]
= rw
Le decimos a Apache donde está el TRAC, añadiendo otro archivo de configuración
# vim /etc/httpd/conf.d/trac.conf
<Location /trac/proyecto>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /srv/trac/proyecto
PythonOption TracUriRoot /trac/proyecto
<Location>
<Location /trac/proyecto/login>
AuthType Basic
AuthName “trac”
AuthUserFile /srv/trac/proyecto.htpasswd
Require valid-user
<Location>
Añadimos un usuario de TRAC
# touch /srv/trac/proyecto.htpasswd
# htpasswd -m /srv/trac/proyecto.htpasswd usuario
Le damos permisos de admin
# trac-admin /srv/trac/ permission add TRAC_ADMIN
Reiniciamos Apache
# service httpd restart
NOTA1: el WebAdmin Plugin no hace falta en la versión 0.11, ya viene por defecto. Sólo hay que dar permisos de TRAC_ADMIN por consola a un usuario y la pestaña de “Admin” aparecerá.
Links