Prof. Dr. Detlef Stern

PersonalTrac: Installation

Ein beliebtes Werkzeug zur Durchführung von Softwareprojekten ist Trac. Es vereinigt ein Wiki mit einer Aufgabenverwaltung und erlaubt die Integration eines Versionskontrollsystems. Darüber hinaus lässt es sich (fast) beliebig mit Hilfe von Plugins und Macros erweitern. Die Integration von Drittanwendungen, z.B. Eclipse Mylyn oder Drupal, ist ebenfalls möglich.

Klassisch serverseitig

Trac wird fast immer auf einem Server installiert. Der Zugriff erfolgt über einen Browser. Mit Hilfe des XML-RPC Plugins können auch andere Systeme, z.B. Eclipse oder Vim, sehr flexibel auf Trac zugreifen. Die Installation auf einen Server ist nicht sehr schwer, sofern einige Vorbereitungen getroffen wurde. Wie eine Installation aussehen kann, ist sehr schön auf den Support-Seiten von Uberspace beschrieben.

Auf diese Art und Weise wird Trac auch in meinen eigenen eigenen Lehrveranstaltungen verwendet. Natürlich in den Projektstudien und zusätzlich immer dann, wenn ein gut zu nutzendes Wiki mitsamt Aufgabenverwaltung gefragt ist.

Persönliches Wissensmanagement

Trac unterstützt nicht nur Entwicklungsteams in Ihrer Arbeit, es kann auch als Werkzeug zum persönlichen Wissensmanagement eingesetzt werden. Über das Wiki werden Informationen abgelegt, es gibt einen Template-Mechanismus zur Vorstrukturierung der Informationen. Über die Aufgabenverwaltung bleiben einzelne Arbeitsschritte nachvollziehbar. Wiki und Aufgabenverwaltung sind in Trac integriert. Vom Wiki kann einfach auf einzelne Aufgaben verwiesen werden. Zur Beschreibung der Aufgaben und deren Lösung wird die Wiki-Notation ohne jede Einschränkungen verwendet.

(Bemerkung: ich weiß, manche mögen keine Wikis zum Wissenmanagement. Diese Diskussion möchte ich hier nicht vertiefen.)

Ich selbst nutze Trac für mein persönliches Wissensmanagement seit mehr als einem Jahr. Moment, ich schaue mal im Trac nach. Ganz genau seit dem 10.02.2010. Über die Journalfunktion bleibt alles nachvollziehbar.

Für meine Projekte lege ich im Wiki eine Projektseite an, in der Aufgabenverwaltung werden diese als "Komponenten" verwaltet. Auf der Projektseite kann ich mir über ein kleines Macro (TicketQuery) alle zum Projekt gehörenden Aufgaben anzeigen lassen. Sofern es sich um Entwicklungsprojekte handelt, binde ich ein eigenes Mercurial-Repository ein. Übrigens, im Wiki kann ich auf einzelne Versionen verweisen. Ein Klick zeigt mir dann die Inhalte und Änderungen an. Alles in allem ist das Arbeiten mit Trac auch für den persönlichen Bedarf sehr bequem.

Später vielleicht mehr darüber. Hier soll es zunächst um die Installation gehen.

Im Unterschied zu anderen Systemen besitzt Trac einen wesentlichen Vorteil: Sie benötigen keine externe Datenbank. Alles kann innerhalb eines Verzeichnisses installiert werden. Damit können Sie auch Trac mit Hilfe von Synchronisationsdiensten, wie z.B. Dropbox oder SugarSync, auf mehreren Systemen gleichwertig nutzen. Ganz ohne Server.

Installation

Zur Installation von Trac werden zwei Softwarepakete benötigt. Zunächst muss Python installiert sein, mindestens in der Version 2.4. Unter OSX oder Linux ist dies zumeist der Fall. Unter Windows müssen Sie es explizit nachinstallieren. Optimal ist die Version 2.7.x, das unter OSX vorinstallierte Python 2.6.1 arbeitet ebenfalls gut mit Trac zusammen.

Für Windows können Sie entweder das normale Python unter http://python.org/download/ oder das etwas aufgepeppte ActivePython installieren. Aktuell sollten Sie darauf achten, nicht Python 3.x zu verwenden. Die Installation ist selbsterklärend.

Unabhängig vom Betriebssystem ist dann einer der beiden Python-Paketmanager zu installieren: easy_install oder pip. Eventuell ist schon einer der beiden Paketmanager installiert. Probieren Sie es einfach einmal auf der Eingabeaufforderung (Windows) oder in einem Terminal (Linux, OSX) aus. Welchen Sie nehmen, ist zum Teil Geschmacksache. Ich selbst bevorzuge pip, nutze aber auf meinem Desktopsystem (historisch begründet) easy_install. Zur Installation von easy_install unter Windows gibt es von mir einen Beitrag, der bei der Installation helfen kann.

Jetzt haben Sie die Werkzeuge zu Installation beisammen.

Sprachunterstützung

Trac kann mehrere Sprachen unterstützen, benötigt aber dazu das Paket Babel. Dieses sollten Sie vor Trac installieren:

easy_install babel

oder

pip install babel

Trac

Nun installieren Sie Trac mit Hilfe eines der beiden Paketmanager ebenso einfach, wie eben Babel:

easy_install trac

oder

pip install trac

Damit haben Sie die zunächst benötigte Software installiert.

Instanz einrichten

Jetzt gilt es die Projektinstanz einzurichten. Es kann beliebig viele, unabhängige Instanzen geben (serverseitig ideal: pro Team eine Instanz), aber für das persönliche Wissensmanagement ist eine Instanz ausreichend.

Wechseln Sie in der Eingabeaufforderung/Terminal in das Verzeichnis, dass Ihre Instanz enthalten soll. Keine Angst, Sie können das Verzeichnis später noch verschieben. Dort legen Sie eine Instanz an, die z.B. den Namen PWM (persönliches Wissensmanagement) erhalten soll:

trac-admin PWM initenv

Als erstes wird nach dem Projektnamen gefragt. Die anschließende Frage nach dem "Datenbankverbindungsstring" lassen sie unbeantwortet und drücken einfach die Return-Taste. Es werden jede Menge Daten ausgegeben. Am Ende steht dann eine kleine Anleitung, wie Sie Ihre Instanz ("Projektumgebung") experimentell in Betrieb nehmen können. Probieren Sie es aus:

tracd --port 8000 PWM

Geben Sie in Ihrem Browser die Adresse http://127.0.0.1:8000/PWM/ ein und sehen Sie sich ein wenig um. Sie werden feststellen, dass Sie sich leider nicht anmelden können, um Daten einzugeben. Dazu müssen Sie die Anmeldung konfigurieren und eine erste Berechtigung vornehmen.

Beenden Sie die Instanz durch einen beherzten Tastendruck auf STRG und C.

Übrigens, Sie können eine Instanz, die vorher auf einem Server lief, in den meisten Fällen einfach auf Ihr lokales System kopieren, es konfigurieren (wie gleich beschrieben), und dann weiternutzen.

Anmeldungsverfahren konfigurieren

Angenommen, Ihre Benutzerkennung soll onkeljonas lauten. Geben Sie zunächst dem Benutzer onkeljonas alle Rechte:

trac-admin PWM permission add onkeljonas TRAC_ADMIN

Benutzername und Kennwort müssen irgendwo abgespeichert werden. OSX und Linux bringen schon alles mit: htapsswd. Geben Sie im Terminal ein:

htpasswd -c PWM/userpass onkeljonas

Geben Sie das gewünschte Passwort an. Als Ergebnis wird eine Datei userpass mit Benutzername und Kennwort im Verzeichnis der Instanz abgelegt.

Windows-Benutzer müssen das Programm htpasswd nachinstallieren. Alternativ kann einer der vielen Generatoren für .htpasswd-Dateien verwendet werden. Wichtig ist, den Inhalt als Datei PWM\userpass abzulegen.

Darüber hinaus müssen Windows-Benutzer noch das Modul fcrypt installieren:

easy_install fcrypt

oder

pip install fcrypt

Instanz starten

Jetzt ist alles bereit, um die konfigurierte Instanz zu starten. Unter OSX und Linux erfolgt der Start mit:

tracd --port=8000 --basic-auth="*",PWM/userpass,PWM PWM

Probieren Sie es aus. Wenn die Anmeldung funktioniert, können Sie die Instanz mit STRG-C abbrechen und den Parameter --daemonize zusätzlich angeben. Damit wird die Ausführung in den Hintergrund geschickt, das Terminal kann beendet werden. Ein wenig mehr Sicherheit bringt der Parameter --hostname=127.0.0.1. Damit kann nur vom lokalen System auf die Instanz zugegriffen werden. Alle Parameter können auch abgekürzt werden:

tracd -p 8000 -d -b 127.0.0.1 --basic-auth="*",PWM/userpass,PWM PWM

Unter OSX kann das Ganze auch automatisiert werden, indem Sie diesen Befehl in ein Automator-Skript eingeben und das Skript als "Anmeldeobjekt" registrieren. Unter Linux gibt es, je nach Distribution, einen ähnlichen Mechanismus.

Unter Windows ist das Vorgehen ähnlich, aber leicht anders. Zunächst müssen Sie die Datei tracd-script.py lokalisieren. Sofern Sie Python in der Version 2.7 installiert und dabei die Pfade nicht geändert haben, befindet sich diese Datei im Verzeichnis C:\Python27\Scripts. Starten Sie Ihre Instanz mit Hilfe des Befehls pythonw von der Eingabeaufforderung:

pythonw c:\Python26\Scripts\tracd-script.py -p 8000 -b 127.0.0.1 --basic-auth="*",PWM/userpass,PWM PWM

Sollte pythonw nicht gefunden werden, so sollten Sie vermutlich eine neue Eingabeaufforderung starten, da der Suchpfad nicht aktualisiert wurde.

Auch unter Windows lässt sich der Startvorgang automatisieren. Dazu legen Sie im Autostart-Ordner ein Skript mit obigem Inhalt an.

Erste Anpassungen

Wenn Sie das Logo links oben anpassen oder gar ein Favicon anlegen wollen, müssen Sie die Konfigurationsdatei PWM/conf/trac.ini anpassen. Legen Sie vorher im Verzeichnis PWM/htdocs das gewünschte Logo (z.B. unter logo.jpg) und das Favicon (unter favicon.ico) ab. Ändern Sie in der Konfigurationdatei folgende Abschnitte:

[header_logo]
alt = Logo
src = site/logo.jpg

und

[project]
icon = site/favicon.ico

Fertig. Sie brauchen dazu die Instanz nicht einmal beenden und neu starten.

(Kleiner Hinweis: innerhalb von Trac wird der Pfad site auf das Verzeichnis htdocs abgebildet.)

Vielleicht möchten Sie auch den Port 8000 auf einen anderen Wert ändern. der Port 8000 wird häufig von frisch installierter Software verwendet, die sich dann mit Ihrer Instanz stören würde. Sie sollten für den Parameter --port (bzw. -p) nur einen Wert größer 1024 (und kleiner 32000) angeben. Bei Portänderungen müssen Sie die Instanz natürlich neu starten.

Sie können auch weiteren Benutzern einen Benutzernamen und Passwort zuweisen. Die Rechte verwalten Sie innerhalb von Trac im Admin-Bereichunter http://127.0.0.1:8000/PWM/admin.

Wie geht es weiter?

In weiteren Artikeln möchte ich zeigen, wie Sie Ihre Instanz mit Hilfe von Plugins und Macros erweitern können. Wünsche und Anregungen nehme ich gerne entgegen.