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
- http://www.techyouruniverse.com/
- http://www.daniel-skinner.co.uk/
- http://www.compulsivoco.com/2008/05/installing-trac-on-centos-5/
fCyUZ2 It would be desirable to see continuation
oee tio … este howto tiene dos errores!!!
K fallos? ??
Gracias por las instrucciones, con o sin errores dan el camino de forma muy clara y creo que ahorrando mucho tiempo
denada, estoy esperando a que Michaelo diga cuales son los dos errores 🙁
Buenas, creo que los errores son estos
DAV svn
SVNPath /srv/svn/
AuthType Basic
AuthName “Repositorio de SVN” —————————————> aqui el WP pone unas comillas raras y al hacer C&P lo convierte en puntos
AuthzSVNAccessFile /srv/svn/svn-acl-conf
AuthUserFile /srv/svn/
.htpasswd———————————————>esto tiene que ir junto a la linea anterior, no en una linea aparte
Require valid-user
esos no son errores, eso es el archivo de configuracion para proteger con contraseña en apache la carpeta del svn
mira este artículo https://blogofsysadmins.com/proteger-carpetas-de-servidor-web-con-apache-con-htaccess-y-htpasswd
correcto, pero tiene que ser:
AuthUserFile /srv/svn/.htpasswd
en vez de:
AuthUserFile /srv/svn/
.htpasswd
Gracias por avisar @nemesis feliz año¡¡