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 der Projektstudie
Softwareentwicklung, und zusätzlich immer dann, wenn ein
gut zu nutzendes Wiki mitsamt Aufgabenverwaltung gefragt ist: Software
Engineering 1 (Requirements Management), Software
Engineering 2 (weitergehende Software-Technik), Seminar
E-Business-Technologien. Andere Projektstudien von Kollegen
scheinen ebenfalls vom Trac-Virus infiziert zu sein (aktuell: 7).
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,
Wuala 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-Bereich.
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.
Schlagworte: python, tool, trac, tutorial.