HOWTO Trac
Un article de Gentoo Linux Wiki.
[modifier] A propos
Trac rassemble plusieurs outils en un seul ; trac est en effet :
- Un outil de gestion de projets logiciels
- Un WikiWikiWeb
- Un systeme de suivi de bugs
- Une interface a subversion (svn)
[modifier] Installation
Installer Trac et toutes ses dépendances :
# emerge trac -av
Une fois la compilation et l'installation terminées, vérifier qu'Apache démarre bien :
# /etc/init.d/apache2 start
Afin d'installer l'habillage(peut ne pas etre nécessaire avec la vesion > 9_beta2), les styles et les images, il faut procéder à la commande suivante qui les introduira dans un dossier appelé «trac» placé dans /var/www/localhost/htdocs, puis créera le fichier trac.cgi dans /var/www/localhost/cgi-bin. Vous devez changer le numéro de version en fin de commande selon votre configuration.
# webapp-config -I -h localhost -d trac trac 0.8
Afin d'avoir une version française de Trac, on se place dans le répertoire /root et on télécharge le dossier contenant l'habillage français :
# cd /root # svn checkout http://trac-hacks.org/svn/tracfrenchtranslation
L'habillage français est alors contenu dans /root/trac/templates. (Note : cet habillage ne marche pas avec la version 0.8, ni 0.8.1. Il semble que le travail fourni soit dédié à des versions CVS.)
| Fichier : ATTENTION |
(Cette dernière adresse est obsolète) |
Reportez vous désormais à : http://trac-hacks.org/wiki/TracFrenchTranslation
En attendant qu'un ebuild soit disponible, vous pouvez télécharger la dernière version en langue française disponible et l'installer à partir des sources :
# cd /usr/src # svn checkout http://trac-hacks.org/svn/tracfrenchtranslation trac # cd trac/0.10 # python ./setup.py install
Et parce qu'il est très pratique, même s'il n'est pas encore traduit en français, installez :
#emerge www-apps/trac-webadmin
On stocke dans le dossier «bidule» le projet logiciel en tant que repo svn, sous /opt/svn/bidule :
# mkdir -p /opt/svn/bidule # svnadmin create /opt/svn/bidule
Une fois ce dossier svn créé, on crée le projet Trac. On l'appelle «bidule» et on le stocke dans /opt/trac/bidule.
# mkdir /opt/trac # trac-admin /opt/trac/bidule initenv
Là, trac-admin pose des questions. La première est le nom du projet, la seconde le chemin du répertoire svn (/opt/svn/bidule), et la troisième nous propose d'utiliser un habillage personnalisé, on peut laisser par défaut (anglais) ou choisir l'habillage français (/root/trac/templates).
Le fichier de configuration de Apache doit être modifié. On ouvre /etc/apache2/httpd.conf et on y ajoute ceci :
| Fichier : /etc/apache2/httpd.conf |
ScriptAlias /bidule "/var/www/localhost/cgi-bin/trac.cgi"
<Location /bidule>
SetEnv TRAC_ENV "/opt/trac/bidule"
</Location>
<Location /bidule/login>
AuthType Basic
AuthName "Bidule sous Trac"
AuthUserFile /opt/trac/bidule/trac.passwd
Require valid-user
</Location>
|
On crée alors le fichier /opt/trac/bidule/trac.passwd avec la commande htpasswd2 pour mettre en place un système d'authentification (ici on crée l'utilisateur moije) :
# htpasswd2 -c /opt/trac/bidule/trac.passwd moije
Ensuite on règle les problèmes de droits :
# chmod -R 755 /opt/svn /opt/trac # chown -R apache:apache /opt/svn /opt/trac
- Page officielle de Trac, en anglais
- la méthode expliquée en anglais sur Gentoo forums.
- http://projects.edgewall.com/trac/wiki/TracInstall
- http://home.dju.elegiac.net/wiki/MultipleTracInstancesOnGentoo
- http://gentoo-wiki.com/HOWTO_Subversion
[modifier] Autoconfiguration
La configuration de SVN, Trac et Apache peut parfois être assez lourde, voici donc un joli script (dégagé d'accent pour ceux qui n'auraient pas les accents dans leur éditeur préféré) qui se fera une joie de vous aider ; vous n'aurez besoin de le modifier qu'une fois pour générer automatiquement chacun de vos environements Trac (et modifier la configuration modulaire d'Apache) :
| Fichier : /usr/local/bin/trac_env_create |
#!/bin/bash
# Recuperation du nom du script
script=`echo "$0" | tr '/' '\n' | tail -n1`
# Verification du nombre d'arguments
if test $# -ne 1; then
echo -ne "Usage: \e[1;36m$script"
echo -e "\e[0m < \e[1;32menvironment \e[0m>"
exit 1
fi
# Il faut etre 'root'
if test `whoami` != "root"; then
echo -ne " \e[1;31m* \e[0m"
echo "Must be root"
exit 2
fi
# On recupere si possible la largeur du term
colcount=$(($(stty -a | grep 'columns' | tr ';' '\n' | grep 'columns' | tr ' ' '\n' | \
grep -v 'columns') + 0))
TERMSIZE=${colcount:-60}
# Affiche un message precede de '*'
function msg_checking
{
msg="$1"
echo -ne " \e[1;36m* \e[0m$msg"
let fill=${TERMSIZE}-${#msg}-10
while test $fill -gt 0; do
echo -n ' '
let fill=fill-1
done
}
# On affiche 'OK' ou '!!' selon le resultat du dernier test
function msg_result
{
echo -ne "\e[1;34m[ "
if test $1 -eq 0; then
echo -ne "\e[1;32mok"
echo -e " \e[1;34m]\e[0m"
else
echo -ne "\e[1;31m!!"
echo -e " \e[1;34m]\e[0m"
exit 1
fi
}
# Le repertoire de trac
trac_path="/var/trac"
# Le dossier de svn
svn_path="/var/svn"
# Le chemin vers le depot svn (deja cree)
repos_path="$svn_path/$1"
# Le chemin vers l'environement trac que l'on veut creer
env_path="$trac_path/$1"
msg_checking "Checking for SVN repostory $1"
test -d "$repos_path"; msg_result $?
# Verifiez que les dossiers sont les bons pour vous
msg_checking "Creating Trac environment for $1"
trac-admin "$env_path" initenv "$1" \
'sqlite:db/trac.db' \
"$repos_path" \
'/usr/share/trac/templates' 2>&1 > trac.log; msg_result 0
rm -f trac.log
# Pour moi Apache2 est apache du groupe svnusers
msg_checking "Changing perm of $1"
chown -R apache:svnusers "$env_path"; msg_result $?
# Voici mon modele de configuration d'Apache2
# Pensez a mettre à jour chacun des dossiers qui ne correspond
# pas a votre machine.
# Je suppose de plus que vous utilisez le fichier d'authentification
# de SVN. Adaptez ceci en consequence.
# Ce modele est ajoute a la fin du fichier /etc/apache2/modules.d/48_mod_trac.conf
msg_checking "Appending Trac's conf in apache2 module's conf"
echo \
"
ScriptAlias /trac/$1 \"/var/www/localhost/cgi-bin/trac.cgi\"
<Location /trac/$1>
SetEnv TRAC_ENV \"$env_path\"
</Location>
<Location /trac/$1/login>
SSLRequireSSL
AuthType Basic
AuthName \"$1 Trac\"
AuthUserFile /var/svn/conf/svnusers
Require valid-user
</Location>" >> /etc/apache2/modules.d/48_mod_trac.conf
msg_result $?
|
N'oubliez pas de recharger Apache pour que le nouvel environement Trac soit pris en compte !
Je fournis aussi le même genre de script pour générer un dépot SVN sur la page du HOWTO Serveur SVN
