Skip to content

Trac: Instalación y Primeras Configuraciones

Trac es un sistema libre para la gestión de proyectos y seguimiento de errores, está fuertemente ligado a subversion. Es una excelente opción para nuestro proyectos de programación, tiene su propio wiki por proyecto y muchas cosas más. Puede correr como un módulo python de Apache, o como CGI, entre otros. Se integra con subversión, y utiliza SQLite (por default), MySQL y PostgreSQL para almacenar la información.

En este artículo veremos como instalar Trac en Ubuntu, como módulo python de apache y usando sqlite. Entonces es necesario tener instalado y funcionando un servidor web Apache, Subversion y SQLite.

Instalación

En Ubuntu es muy fácil instalar el Trac, para eso usamos el comando apt-get o aptitude, solo que nos instalará la versión 0.10.x, siendo la versión más nueva hasta este momento la 0.11.x. Tal vez más adelante explique como instalar esta versión desde 0. Hoy lo haremos de la manera fácil. Entonces instalamos Trac y de una vez el módulo de python para Apache.

$ sudo aptitude trac libapache2-mod-python

Podemos integrar un proyecto en Trac con un repositorio SVN o no :P , depende lo que necesitemos, para este ejemplo lo integraremos con un proyecto llamado tracsvn.

Project Enviroment

Ahora tenemos que especificar la ruta al Project Enviroment o Trac Enviroment, aquí será donde se guarde toda la información referente al proyecto. Cabe señalar que para cada proyecto que queramos dar seguimiento con Trac tenemos que especificar un Project Enviroment. La sintaxis es:

$ sudo trac-admin /path/to/myproject initenv

Para efectos prácticos de este artículo, cada proyecto lo guardaremos dentro del directorio /var/trac/projects. Este proyecto lo llamaremos… mmmm… protrac :P . Entonces primero creamos el directorio /var/trac/projects/protrac y luego decimos que es un Project Enviroment.

$ sudo su
# mkdir -p /var/trac/projects/protrac
# trac-admin /var/trac/projects/protrac initenv

Al especificar la ruta del Project Enviroment con trac-admin, preguntará por el nombre que le daremos al proyecto, por la Database Connection String (por default sqlite), el tipo de control de versiones (por default svn), y luego la dirección del repositorio (si no queremos enlazarlo con uno lo dejamos en blanco), luego la locación de los templates (default /usr/share/trac/templates directorio donde se instalo trac).

Esto del Database Connection String, es una cadena para especificar los datos del gestor de base de datos que queremos usar. Podemos usar MySQL, PostgreSQL y SQLite, este úlitmo viene por defecto y ese utilizaremos en este ejemplo, en artículos posteriores veremos como se definen las cadenas para MySQL y PostgreSQL.

Si no sucede ningún error nuestro Project Enviroment está ya creado. Cabe señalar que el usuario de Apache, en ubuntu usualmente www-data, debe de poder escribir y leer en la dirección del Project Enviroment, si no obtendremos un error 500 no se que cuando lo queramos abrir desde el navegador. Entonces tecleamos:

$ sudo chown -R www-data:www-data /var/trac/projects/protrac

Recuerda que debes de cambiar las rutas si elegiste una distinta.

El Trac como server standalone

Ahora podemos lanzar el Trac como un server standalone,

$ sudo tracd --port 8000 /var/trac/projects/protrac

Luego entramos a http://localhost:8000/protrac y listo.

Trac como webserver con mod-python

Ahora para configurarlo en el webserver, es necesario el mod-python instalado, si lo instalaste con apt-get o aptitude ya se ha de haber cargado. Podríamos checar tecleando:

$ sudo a2enmod mod_python

Si no estaba activado lo hará y tendremos que reiniciar el apache. Para que el Trac funcione con nuestro Apache tendremos que crear una nueva directiva Location, podemos hacerlo añandiendolo en el archivo /etc/apache2/sites-available/default o crear uno nuevo, para mejor organización recomiendo crear uno nuevo, en este caso sería el archivo /etc/apache2/sites-available/trac. Necesitamos habilitarlo una vez que creamos el archivo, esto se hace:

$ sudo a2ensite trac

Primero checamos si el modulo de python esta correctamente cargado agregando estas al archivo que acabamos de agregar. Recuerda borrarlo después de ver que si funciona para evitar problemas de seguridad.

<Location /mpinfo>
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler mod_python.testhandler
</Location>

Reiniciamos apache y luego tecleamos en nuestro navegador http://localhost/mpinfo, debe de mostrar mucha información acerca del módulo. Ahora para ver el proyecto que anteriormente creamos, agregamos el siguiente código al archivo trac, después de haber borrado las líneas anteriores:


<Location /projects/protrac>
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /var/trac/projects/protrac
PythonOption TracUriRoot /projects/protrac
</Location>

Reiniciamos Apache y en el navegador ponemos http://localhost/projects/protrac y listo ya tenemos nuestro Trac funcionando en nuestro server.

Recuerda que en PythonOption TracEnv poner la ruta del Project Enviroment que tu creaste. Así haremos para cada proyecto que tengamos. La opción TracUriRoot a veces no es necesaria, podrías probar quitandola, pero si te aparece un error como “No handler matched request to…” entonces agregas TracUriRoot, su valor es el mismo que el de la directiva Location.

Configurando la autenticación

Ahora veremos como crear una autenticación sencilla para que usuarios que usarán el Trac se logueen y llevar un registro de los tickets que hacen y los registros, etc. Escribimos el siguiente código dentro de nuestro archivo /etc/apache2/sites-available/trac. Recuerda modificar las rutas a como los necesites.


<Location /projects/protrac/login>
AuthType Basic
AuthName "Proyecto Prueba Trac"
AuthUserFile /var/trac/protrac/.htpasswd
Require valid-user
</Location>

El archivo /var/trac/protrac/.htpasswd contendrá los usuarios y passwords para acceder al trac, así para agregar usuarios usamos el comando htpasswd:

$ sudo htpasswd -cm /var/trac/protrac/.htpasswd usuario

Inmediatamente te pedirá el password dos veces y listo, nada más faltaría reiniciar Apache, eso se haría:

$ sudo /etc/init.d/apache2 restart

Listo ya tenemos el Trac funcionando, enlazado a un proyecto SVN. En artículos posteriores veremos tips y configuraciones así de como usar y administrar el programa, conforme yo vaya aprendiendo :P .

Amarok is playing: Taurus by Talamasca

Comparteme:
  • Facebook
  • Twitter
  • del.icio.us
  • Meneame
  • RSS
  • Technorati
  • Digg
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • StumbleUpon

8 Comments

  1. ela

    holas para hacer la validacion del login para q anda en donde hay q crear el archivo????
    gracias saludos….

    Posted on 31-Oct-08 at 7:44 am | Permalink
  2. keogh

    Pues en este caso yo lo puse dentro del Project Enviroment Path, en este caso mi Project Enviroment Path es /var/trac/protrac/, el archivo donde estarán los nombres de usuario y passwords estan dentro de un archivo llamado .htpasswd dentro de /var/trac/protrac

    Este archivo puede estar donde quieras solo que el Apache tenga permisos de lectura del archivo.

    s4lu2

    Posted on 01-Nov-08 at 11:25 am | Permalink
  3. Gracias, tenia visto el trac y la verdad lo instale en ubuntu 9.04 en minutos, y anda perfecto.

    Un excelente tutorial.

    Posted on 04-Jun-09 at 3:19 pm | Permalink
  4. David Ortega

    Hola muy buenas,

    cuando voy hacer:

    # trac-admin /var/trac/proyectos/miproyecto initenv

    Me da este error:

    Creating and Initializing Project
    Initenv for ‘/var/trac/proyectos/otrabajo’ failed.
    Failed to create environment.
    need more than 1 value to unpack
    Traceback (most recent call last):
    File “/usr/lib/python2.6/dist-packages/trac/admin/console.py”, line 583, in do_initenv
    options=options)
    File “/usr/lib/python2.6/dist-packages/trac/env.py”, line 207, in __init__
    self.create(options)
    File “/usr/lib/python2.6/dist-packages/trac/env.py”, line 341, in create
    DatabaseManager(self).init_db()
    File “/usr/lib/python2.6/dist-packages/trac/db/api.py”, line 85, in init_db
    connector, args = self._get_connector()
    File “/usr/lib/python2.6/dist-packages/trac/db/api.py”, line 123, in _get_connector
    scheme, args = _parse_db_str(self.connection_uri)
    File “/usr/lib/python2.6/dist-packages/trac/db/api.py”, line 150, in _parse_db_str
    scheme, rest = db_str.split(‘:’, 1)
    ValueError: need more than 1 value to unpack

    Posted on 15-Jun-10 at 10:33 am | Permalink
  5. keogh

    @David pareciera que es error porque no tienes instalado python en tu sistema :S.

    También verfica que carpeta del project enviroment haya sido creada.

    Saludos y gracias por leer el blog.

    Posted on 15-Jun-10 at 10:48 am | Permalink
  6. David Ortega

    Vale ya está arreglado ese error. Ahora al ejecutar esto:

    sudo tracd –port 8000 /var/trac/projects/protrac

    Traceback (most recent call last):
    File “/usr/bin/tracd”, line 9, in
    load_entry_point(‘Trac==0.11.7′, ‘console_scripts’, ‘tracd’)()
    File “/usr/lib/python2.6/dist-packages/trac/web/standalone.py”, line 289, in main
    serve()
    File “/usr/lib/python2.6/dist-packages/trac/web/standalone.py”, line 256, in serve
    use_http_11=options.http11)
    File “/usr/lib/python2.6/dist-packages/trac/web/standalone.py”, line 109, in __init__
    request_handler=request_handlers[bool(use_http_11)])
    File “/usr/lib/python2.6/dist-packages/trac/web/wsgi.py”, line 236, in __init__
    HTTPServer.__init__(self, server_address, request_handler)
    File “/usr/lib/python2.6/SocketServer.py”, line 400, in __init__
    self.server_bind()
    File “/usr/lib/python2.6/BaseHTTPServer.py”, line 108, in server_bind
    SocketServer.TCPServer.server_bind(self)
    File “/usr/lib/python2.6/SocketServer.py”, line 411, in server_bind
    self.socket.bind(self.server_address)
    File “”, line 1, in bind
    socket.error: [Errno 98] Address already in use

    Uff!! Que desesperacion :S

    Posted on 15-Jun-10 at 11:08 am | Permalink
  7. David Ortega

    Tras mucho pelear y modificar cosas he conseguido hacerlo funcionar. Ahora solo me falta poner contraseña al acceder al Trac que aunque ponga esto:

    AuthType Basic
    AuthName “Proyecto Prueba Trac”
    AuthUserFile /var/trac/protrac/.htpasswd
    Require valid-user

    Y después de crear mi usuario, no me sale la ventana para meter el usuario y la contraseña.

    Saludos

    Posted on 15-Jun-10 at 12:28 pm | Permalink
  8. keogh

    Usaste el comando htpasswd? y cuando diste enter te pidió la contraseña?

    Reiniciaste el apache?

    Si hiciste todo lo anterior no tiene porque no funcionar :S

    Saludos

    Posted on 09-Jul-10 at 10:09 am | Permalink

One Trackback/Pingback

  1. [...] Lo primero que debemos instalar es Mylyn, Eclipse 3.5 Ganimede ya lo trae integrado, creo que desde la versión 3.4, luego debemos instalar el conector TRAC y por supuesto, tener ya instalado y configurado un TRAC en tu máquina. [...]

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*