So here we are again this time to talk about "Trac" an integrated SCM and project management tool. I love this tool even though at first glance it could result a bit simplistic. The philosophy is quite clear and if you make a good usage of the tool you will be implementing plenty of recognized good practices on the software engineering even without notice it. Here you can find the original site with a lot of information, tutorials, etc.. As usual, I will focus on this tutorial on how install it and make it works, but I do not discard a future where we will integrate our source code within Trac and create a bunch of online documentation for it.
I will explain two different approaches, the classical one when we have root privileges, and a very particular one by downloading the sources and installing it without root permissions.
A. Install Trac in the classical way.
1. Install easy_install tool (More information here):
2. Install Genshi, a web-template based tool that Trac is based on: (More information here.)
3. Install the python connector that will allows Trac to communicate with a MySQL Database.
4. Install Babel, the internationalization engine that Trac is based on:
5. And finally... Install Trac!!
6. If you want to use Trac with a MySQL Database, you will need to create a Database called trac and provide the needed privileges for the user 'tracuser' from MySQL monitor (More information about how to install and use MySQL on this previous blog):
If you are installing Trac in the same server that MySQL is installed, your connection query should be something like this:
If you are installing it in a different server you will have to change 'localhost' by the IP of the server were MySQL is installed
7. Create a directory where the configuration files of your Trac site will be stored e.g. /var/trac/testsite
8. Execute initenv command indicating the directory created in the previous step (You will be asked for several paramenters, including the connection query retrieved on the step 6) :
The main configuration field of your site is found here:
You can run a built-in server to start playing with your just installed tool:
After doing that you should be able to browse your site:
Finally I would like to mention a very interesting command that will provide the default user Administrator privileges over the whole site.
B. Install Trac from the sources
1. Install Python
wget http://www.python.org/ftp/python/2.6.7/Python-2.6.7.tgz
export PATH=$PATH:~/bin/Python-2.6.7/Lib
tar -xvf Python-2.6.7.tgz
2. Install easy_install tool
wget http://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c11-py2.6.egg#md5=bfa92100bd772d5a213eedd356d64086
export PYTHONPATH=$PYTHONPATH:/home/javier/bin/EasyInstall
sh setuptools-0.6c11-py2.6.egg --install-dir=~/bin/EasyInstall
export PATH=$PATH:~/bin/EasyInstall
3. Install Genshi
export PYTHONPATH=$PYTHONPATH:~/app/Genshi
easy_install --install-dir=~/app/Genshi/ Genshi
4. Install Babel
export PYTHONPATH=$PYTHONPATH:~/app/Babel
easy_install --install-dir=~/app/Babel/ Babel
5. Install Trac
export PYTHONPATH=$PYTHONPATH:~/app/Trac
easy_install --install-dir=~/app/Trac/ Trac
./trac-admin ~/tracsites/ initenv
./tracd --port 8000 ~/tracsites/ initenv
I will explain two different approaches, the classical one when we have root privileges, and a very particular one by downloading the sources and installing it without root permissions.
A. Install Trac in the classical way.
1. Install easy_install tool (More information here):
sudo apt-get install python-setuptools
2. Install Genshi, a web-template based tool that Trac is based on: (More information here.)
sudo easy_install Genshi
3. Install the python connector that will allows Trac to communicate with a MySQL Database.
sudo apt-get install python-mysqldb
4. Install Babel, the internationalization engine that Trac is based on:
sudo easy_install Babel==0.9.5
5. And finally... Install Trac!!
sudo easy_install Trac
6. If you want to use Trac with a MySQL Database, you will need to create a Database called trac and provide the needed privileges for the user 'tracuser' from MySQL monitor (More information about how to install and use MySQL on this previous blog):
CREATE DATABASE trac DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
GRANT ALL ON trac.* TO tracuser@localhost IDENTIFIED BY 'administrador';
If you are installing Trac in the same server that MySQL is installed, your connection query should be something like this:
mysql://tracuser:administrador@localhost/trac
If you are installing it in a different server you will have to change 'localhost' by the IP of the server were MySQL is installed
7. Create a directory where the configuration files of your Trac site will be stored e.g. /var/trac/testsite
8. Execute initenv command indicating the directory created in the previous step (You will be asked for several paramenters, including the connection query retrieved on the step 6) :
sudo trac-admin /var/trac/testsite initenv
The main configuration field of your site is found here:
/var/trac/testsite/conf/trac.ini
You can run a built-in server to start playing with your just installed tool:
sudo tracd --port 8000 /var/trac/testsite
After doing that you should be able to browse your site:
Fig.1 Our first Trac Project
Finally I would like to mention a very interesting command that will provide the default user Administrator privileges over the whole site.
sudo trac-admin /var/trac/testsite permission add anonymous TRAC_ADMIN
B. Install Trac from the sources
1. Install Python
wget http://www.python.org/ftp/python/2.6.7/Python-2.6.7.tgz
export PATH=$PATH:~/bin/Python-2.6.7/Lib
tar -xvf Python-2.6.7.tgz
2. Install easy_install tool
wget http://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c11-py2.6.egg#md5=bfa92100bd772d5a213eedd356d64086
export PYTHONPATH=$PYTHONPATH:/home/javier/bin/EasyInstall
sh setuptools-0.6c11-py2.6.egg --install-dir=~/bin/EasyInstall
export PATH=$PATH:~/bin/EasyInstall
3. Install Genshi
export PYTHONPATH=$PYTHONPATH:~/app/Genshi
easy_install --install-dir=~/app/Genshi/ Genshi
4. Install Babel
export PYTHONPATH=$PYTHONPATH:~/app/Babel
easy_install --install-dir=~/app/Babel/ Babel
5. Install Trac
export PYTHONPATH=$PYTHONPATH:~/app/Trac
easy_install --install-dir=~/app/Trac/ Trac
./trac-admin ~/tracsites/ initenv
./tracd --port 8000 ~/tracsites/ initenv