Documentation technique : Debian
Documentation basée sur la distribution Debian

> > > Installation du logiciel de bugtracking : trac

Installation du logiciel de bugtracking : trac

Installation de trac

Trac est une interface web écrite en python. Son installation fait donc appel à des commandes spécifiques relatives à ce language.

On installe les dépendances nécessaires :

  1. sudo apt-get install python python-svn python-subversion python-setuptools libapache2-mod-python libapache2-mod-python-doc

Puis on lance la série de commande suivante :

  1. #On récupère tout d'abord l'archive de la dernière version du logiciel dans le home de l'utilisateur en court
  2. cd ~
  3. wget http://download.edgewall.org/trac/Trac-1.0.tar.gz
  4. # On décompresse l'archive téléchargée
  5. tar -xvzf Trac-1.0.tar.gz
  6. # On installe les dépendances python
  7. sudo easy_install Pygments
  8. sudo easy_install Genshi
  9. #On se déplace dans le répertoire créé sur au désarchivage
  10. cd Trac-1.0
  11. sudo python ./setup.py install

Télécharger

Créer l’instance de trac

Nous allons créer les instances de tracs dans le répertoire /var/trac, il est donc nécessaire de le créer au préalable :

  1. sudo mkdir -p /var/trac

On peut passer alors à la création de l’instance en rapport avec le dépôt subversion précédemment créé :

  1. sudo trac-admin /var/trac/domaine.tld initenv

Trac-admin posera alors quelques questions :

  • Project Name : donnez lui un titre, ici "arscenic.org".
  • Database connection string : sqlite:db/trac.db (par défaut base de donnée sqlite)

À la fin, l’installation de trac créera une arborescence dans /var/trac/domaine.tld qui devrait ressembler à celle ci :

  1. ls -lsa /var/trac/arscenic.org
  2. total 44
  3. 4 drwxr-xr-x 9 root root 4096 avr 19 02:34 .
  4. 4 drwxr-xr-x 3 root root 4096 avr 19 02:34 ..
  5. 4 drwxr-xr-x 2 root root 4096 avr 19 02:34 attachments
  6. 4 drwxr-xr-x 2 root root 4096 avr 19 02:34 conf
  7. 4 drwxr-xr-x 2 root root 4096 avr 19 02:34 db
  8. 4 drwxr-xr-x 2 root root 4096 avr 19 02:34 htdocs
  9. 4 drwxr-xr-x 2 root root 4096 avr 19 02:34 log
  10. 4 drwxr-xr-x 2 root root 4096 avr 19 02:34 plugins
  11. 4 -rw-r--r-- 1 root root 98 avr 19 02:34 README
  12. 4 drwxr-xr-x 2 root root 4096 avr 19 02:34 templates
  13. 4 -rw-r--r-- 1 root root 27 avr 19 02:34 VERSION

Télécharger

Il est nécessaire que la base de donnée soit lisible par l’utilisateur du serveur web (sur Debian ou Ubuntu c’est en général "www-data") :

  1. sudo chown www-data:www-data -Rvf /var/trac/domaine.tld/

On va ensuite lui ajouter le dépot /var/svn/domaine.tld/ :

  1. trac-admin /var/trac/domaine.tld/
  2. repository add domaine.tld /var/svn/domaine.tld/
  3. quit

Télécharger

Modification du virtiualhost Apache pour afficher Trac

On va maintenant modifier le virtualhost Apache que l’on a fait auparavant pour ajouter Trac comme page d’accueil de notre sous domaine.

On édite le fichier :

  1. sudo nano /etc/apache2/sites-available/svn

Et on remplace son contenu par le suivant :

  1. <VirtualHost *:80>
  2. ServerAdmin admin@domaine.tld
  3. ServerName svn.domaine.tld
  4. DocumentRoot /var/trac/domaine.tld/htdocs/
  5.  
  6. <Location />
  7. SetHandler mod_python
  8. PythonInterpreter main_interpreter
  9. PythonHandler trac.web.modpython_frontend
  10. PythonOption TracEnv /var/trac/domaine.tld
  11. PythonOption TracUriRoot /
  12. </Location>
  13. # L'authentification pour trac est basée sur les même utilisateurs qu'en svn
  14. <Location "/trac/login">
  15. AuthType Basic
  16. AuthName "Trac"
  17. AuthUserFile /var/svn/domaine.tld/conf/passwd
  18. Require valid-user
  19. </Location>
  20.  
  21. DirectoryIndex trac/
  22.  
  23. ErrorLog /var/log/apache2/error.trac-domaine.tld
  24. CustomLog /var/log/apache2/access.trac-domaine.tld combined
  25. LogLevel debug
  26.  
  27. # SVN n'est accessible que sur /svn
  28. <Location /svn>
  29. DAV svn
  30. SVNPath /var/svn/domaine.tld
  31.  
  32. # our access control policy
  33.  
  34. # try anonymous access first, resort to real
  35. # authentication if necessary.
  36.  
  37. # how to authenticate a user
  38. AuthType Basic
  39. AuthName "Subversion repository"
  40. AuthUserFile /var/svn/domaine.tld/conf/passwd
  41.  
  42. Satisfy Any
  43. AuthzSVNAccessFile /var/svn/domaine.tld/conf/authz
  44.  
  45. Require valid-user
  46. </Location>
  47. </VirtualHost>

Télécharger

On recharge ensuite la configuration d’Apache :

  1. /etc/init.d/apache2 force-reload

Mise en place d’un fichier robots.txt

Il peut être utile d’empêcher l’indexation des pages de trac par les moteurs de recherche pour des raisons de performances serveur ou de confidentialité. Pour cela il suffit de créer un fichier robots.txt propre au domaine de trac :

  1. nano /var/trac/domaine.tld/htdocs/robots.txt

Et voici le contenu à coller dans le fichier robots.txt :

  1. User-agent: *
  2. Disallow: /

Télécharger

Ainsi on interdit aux robots des moteurs l’indexation de toutes les pages de notre trac.

On ajoute alors dans la déclaration du virtualhost la directive suivante qui empêche l’URL avec robot.txt d’être traitée par mod_python :

  1. <Location /robot.txt>
  2. SetHandler None
  3. </Location>

Télécharger

  • Auteur :
  • Publié le :
  • Mis à jour : 10/11/12

4 commentaires


  • Le 20 juillet 2009 à 10:05, par azerttyu En réponse à : Utilisation des paquets debian pour Trac

    Bonjour

    Dans une logique Debian, il est je crois préférable d’utiliser les paquets.

    On peut ainsi obtenir les paquets backportés pour Etch depuis le serveur backports.mithril-linux.org

    Premiere étape : télécharger les paquets voulus

    • wget http://backports.mithril-linux.org/pool/main/t/trac/trac_0.11.1-2.1~bpo40+2_all.deb
    • wget http://backports.mithril-linux.org/pool/main/g/genshi/python-genshi_0.5.1-1~bpo40+1_i386.deb
    • wget http://backports.mithril-linux.org/pool/main/j/jquery/libjs-jquery_1.2.6-1~bpo40+1_all.deb

    Seconde étape : installer les dépendances connues

    • dpkg -i libjs-jquery_1.2.6-1~bpo40+1_all.deb
    • dpkg -i python-genshi_0.5.1-1~bpo40+1_i386.deb

    Troisiéme étape : trouver et installer les dépendance manquantes

    • dpkg -i trac_0.11.1-2.1~bpo40+2_all.deb
    • apt-get -f install

    Quatrième étape : installer trac

    • dpkg -i trac_0.11.1-2.1~bpo40+2_all.deb

    C’est peut être plus long, mais au moins on n’aura plus à chercher pour desinstaller les outils tout se passe avec apt.

    Répondre à ce message

    • Le 25 juillet 2009 à 01:32, par Quentin Drouet En réponse à : Utilisation des paquets debian pour Trac

      C’est une solution en effet. Cependant la version de trac n’est pas à jour dans les paquets Debian... Pour beaucoup de services web, Debian ne suit pas vraiment les mises à jour de logiciels (je pense notamment au gestionnaire de mailing list "sympa".

      Il me semble bien que sur lenny les paquets soient déjà dans les dépots, dans la même version que tu cites : 0.11.1-2.1 .

      NB : la version actuelle stable de Trac est la 0.11.5 ce qui dans le cycle de développement de Trac est une longue période.

      Cependant je te remercie de la remarque et je vais faire un article "alternatif" avec ta méthode, ca ne mange pas de pain... ;)

      Répondre à ce message

      • Le 18 novembre 2009 à 18:38 En réponse à : Utilisation des paquets debian pour Trac

        Bonjour, j’ai un problème :

        Traceback (most recent call last) :
        File "/usr/lib/python2.6/dist-packages/trac/web/api.py", line 339, in send_error
        ’text/html’)
        File "/usr/lib/python2.6/dist-packages/trac/web/chrome.py", line 684, in render_template
        data = self.populate_data(req, data)
        File "/usr/lib/python2.6/dist-packages/trac/web/chrome.py", line 600, in populate_data
        ’EMAIL_VIEW’ in req.perm)
        File "/usr/lib/python2.6/dist-packages/trac/perm.py", line 523, in has_permission
        return self._has_permission(action, resource)
        File "/usr/lib/python2.6/dist-packages/trac/perm.py", line 537, in _has_permission
        check_permission(action, perm.username, resource, perm)
        File "/usr/lib/python2.6/dist-packages/trac/perm.py", line 424, in check_permission
        perm)
        File "/usr/lib/python2.6/dist-packages/trac/perm.py", line 282, in check_permission
        get_user_permissions(username)
        File "/usr/lib/python2.6/dist-packages/trac/perm.py", line 357, in get_user_permissions
        for perm in self.store.get_user_permissions(username) :
        File "/usr/lib/python2.6/dist-packages/trac/perm.py", line 173, in get_user_permissions
        db = self.env.get_db_cnx()
        File "/usr/lib/python2.6/dist-packages/trac/env.py", line 257, in get_db_cnx
        return DatabaseManager(self).get_connection()
        File "/usr/lib/python2.6/dist-packages/trac/db/api.py", line 74, in get_connection
        connector, args = self._get_connector()
        File "/usr/lib/python2.6/dist-packages/trac/db/api.py", line 97, in _get_connector
        raise TracError(’Unsupported database type "%s"’ % scheme)
        TracError : Unsupported database type "sqlite"

        peut-être dû à la méthode d’update...

        dpkg -l trac donne
        ii trac 0.11.1-2.1 Enhanced wiki and issue tracking system for software development projects

        alors que

        easy_install trac
        Searching for trac
        Best match : Trac 0.11.5
        Processing Trac-0.11.5-py2.6.egg
        Trac 0.11.5 is already the active version in easy-install.pth
        Installing trac-admin script to /usr/local/bin
        Installing tracd script to /usr/local/bin

        Using /usr/local/lib/python2.6/dist-packages/Trac-0.11.5-py2.6.egg
        Processing dependencies for trac
        Finished processing dependencies for trac

        il y en a un de trop ou est-ce le même ? est-ce lié ?

        Répondre à ce message

        • Le 18 novembre 2009 à 19:21 En réponse à : Utilisation des paquets debian pour Trac

          ok, j’ai vu le pb :
          easy_install a utilisé /usr/local/lib/python2.6/dist-packages/Trac-0.11.5-py2.6.egg
          le package debian est installé /usr/share/pyshared/,
          et les liens sont faits dessus à partir de /usr/lib/python2.6/dist-packages

          sans ’local’

          c’est apparemment ce dernier qu’utilise apache

          bon, et comment je rétablie le bouzin maintenant ?
          /usr/local/lib/python2.6/dist-packages/easy-install.pth
          /usr/lib/python2.5/site-packages/easy-install.pth

          Répondre à ce message

Qui êtes-vous ?
  • [Se connecter]
Ajoutez votre commentaire ici
  • Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.