Installation de Trac sur un hébergement Dreamhost

Tagged:  •  

Trac logo

Trac est en quelques sortes une application open source de gestion de projet / suivie de bugs pour le développement de logiciel qui offre de nombreuses fonctionnalités comme un wiki, une roadmap, un timeline, un bug tracking et pour ne rien gâcher il se connecte à Subversion.

C'est à mon avis la référence dans le domaine, il suffit de jeter un oeil à la liste impressionnante des utilisateurs de Trac pour en être convaincu.
Sur le wiki de dreamhost il est précisé que l'installation est difficile, mais j'ai plutôt suivi (en grande partie) ce tuto assez facilement. Ce n'est pas aussi facile qu'une "one-click install" de Dreamhost mais c'est faisable sans trop de connaissance, il suffit de suivre les différentes étapes. Je vais récapituler pas à pas en français ;-)

  • pré-requis : se connecter en ssh sur son compte Dreamhost, maitriser les bases d'un éditeur de texte en mode console, pour ma part j'utilise VI .
  • Modifier les variables d'environnement :

Rajouter dans ~/.bash_profile

export PYTHONPATH="$HOME/packages/lib/python2.3/site-packages"

export LD_LIBRARY_PATH="$HOME/packages/lib"

export PATH="$HOME/packages/bin:$PATH"

Pour prendre en compte les changements

source ~/.bash_profile
  • On va créer trois répertoires à la racine de notre compte Dreamhost: un temporaire que l'on pourra supprimer à la fin, un pour installer les différents packages et un pour les sites Trac
cd
mkdir install_files
mkdir packages
mkdir trac_sites
  • Installation de Trac 0.10.3
cd ~/install_files
wget http://ftp.edgewall.com/pub/trac/trac-0.10.3.tar.gz
tar zxf trac-0.10.3.tar.gz
cd trac-0.10.3
python setup.py install --prefix=$HOME/packages
  • Installation de Clearsilver 0.10.4
cd ~/install_files
wget http://www.clearsilver.net/downloads/clearsilver-0.10.4.tar.gz
tar zxf clearsilver-0.10.4.tar.gz
cd clearsilver-0.10.4
sed -i "s@/usr/local/bin/python@/usr/bin/env python@g" scripts/document.py
PYTHON_SITE=`/home/{votreUserDreamhost}/packages/bin/python -c "import sys; print [path for path in sys.path if path.find('site-packages') != -1][0]"` ./configure --with-python=/home/{votreUserDreamhost}/packages/bin/python --prefix=$HOME/packages --disable-ruby --disable-java --disable-apache --disable-csharp --disable-perl
make
make install
  • Installation de SQLite 3.3.13
cd ~/install_files
wget http://www.sqlite.org/sqlite-3.3.13.tar.gz
tar zxf sqlite-3.3.13.tar.gz
cd sqlite-3.3.13
./configure --prefix=$HOME/packages
make
make install
ln -s $HOME/packages/bin/sqlite3 $HOME/packages/bin/sqlite
  • Installation de PySQLite 2.3.3
cd ~/install_files
wget http://initd.org/pub/software/pysqlite/releases/2.3/2.3.3/pysqlite-2.3.3...
tar zxf pysqlite-2.3.3.tar.gz
cd pysqlite-2.3.3

dans le fichier setup.py modifier avec Vi par exemple la ligne

include_dirs = [] to include_dirs = ['$HOME/packages/include']

en

library_dirs = [] to library_dirs = ['$HOME/packages/lib']

puis on continue

python setup.py build
python setup.py install --prefix=$HOME/packages
  • Installation de SWIG 1.3.31 (peut être déjà installé chez dreamhost mais je l'ai lu après, vous pouvez tester par la commande ci-dessous, si il n'y a pas d'erreur ça devrait être bon et il ne devrait pas être nécessaire d'installer SWIG
python -c "from svn import client"

Sinon :

cd ~/install_files
wget http://dl.sourceforge.net/sourceforge/swig/swig-1.3.31.tar.gz
tar zxf swig-1.3.31.tar.gz
cd swig-1.3.31
./configure --prefix=$HOME/packages --with-python=/usr/bin/python
make
make install
python -c "from svn import client"
  • Création d'un projet Trac
trac-admin $HOME/trac_sites/{votre identifiant de projet Trac} initenv

Pour {votre identifiant de projet} vous choisissez ce que vous voulez.

Vous devez ensuite répondre à quelques questions :

Project Name: {ce que vous voulez}
Database connection string: {Validez le choix par défaut}
Type of version control: {Validez le choix par défaut}
Path to repository: /home/{votre user dreamhost}/svn/{votre identifiant de projet SVN}
Templates directory: {Validez le choix par défaut}

Nous allons ensuite créer un administrateur, pour cela il faut lancer la console d'administration de Trac pour notre projet :

trac-admin $HOME/trac_sites/{votre identifiant de projet Trac choisi plus haut}

permission add admins TRAC_ADMIN
permission add {nom d'utilisateur} admins
exit (quitter la console d'administration)
  • Rendre le projet Trac accessible
cd ~/{mon.domaine.com}

nom de domaine pour le projet Trac, on peut également regrouper ses projets Trac dans un sous-domaine comme par exemple trac.domaine.com/projet1, trac.domaine.com/projet2.

On va ensuite créer deux fichiers inex.cgi et index.fcgi (avec Vi par exemple)

index.cgi

#!/bin/bash
export HOME="/home/{votreUserDreamhost}"
export TRAC_ENV="$HOME/trac_sites/{votre identifiant de projet trac}"
export PYTHONPATH="$HOME/packages/lib/python2.3/site-packages"
export PATH="$HOME/packages/bin:$PATH"
export LD_LIBRARY_PATH="$HOME/packages/lib"

exec $HOME/packages/share/trac/cgi-bin/trac.cgi

index.fcgi

#!/bin/bash
export HOME="/home/{votreUserDreamhost}"
export TRAC_ENV="$HOME/trac_sites/{votre identifiant de projet trac}"
export PYTHONPATH="$HOME/packages/lib/python2.3/site-packages"
export PATH="$HOME/packages/bin:$PATH"
export LD_LIBRARY_PATH="$HOME/packages/lib"

exec $HOME/packages/share/trac/cgi-bin/trac.fcgi

Modifier le fichier .htaccess avec cette ligne

DirectoryIndex index.cgi

Vous pouvez changer en index.fcgi qui est plus rapide, si FastCGI est activé pour votre domaine (voir dans le panel Dreamhost)

Ne pas oublier de changer les droits sur les fichiers index.cgi et index.fcgi

chmod 775 index.cgi index.fcgi

A partir de maintenant votre projet Trac est accessible par le web.

Dans le le tuto de natmaster.com vous trouverez d'autres informations intéressantes sur des configurations optionnelles et des plugins pour Trac.

Voilà, il ne reste plus qu'à faire un peu de ménage en supprimant les fichiers d'installation.

cd
rm -rf install_files

Liens utiles

Pour une bonne nouvelle...

Pour une bonne nouvelle... c'est une bonne nouvelle!

Pour ceux qui développent sous eclipse, je vous recommande l'excellent plugin Mylyn (ex Mylar) pour de la gestion avancée de tâches couplée à TRAC.