Trac
ist eine in Python geschriebene, webbasierte Anwendung, welche besonders bei Softwareentwicklern beliebt ist. Das Programm bietet unter einer integrierten Oberfläche ein Ticket-System, ein Wiki sowie eine Quellcode-Verwaltung. Dafür kommt Subversion zum Einsatz, Trac lässt sich über Plugins jedoch auch auf andere Versionskontrollsysteme umstellen.
Das Programm bietet verschiedene Übersichten und Auswertungsmöglichkeiten zum Status der Tickets sowie der Historie der Versionskontrolle. Weiterhin bietet Trac eine recht fein konfigurierbare Benutzerrechteverwaltung. Es wird per Voreinstellung SQLite als Datenbank im Hintergrund genutzt, grundsätzlich besteht aber auch die Möglichkeit, auf MySQL oder PostgreSQL umzustellen, was aber nur bei großen Projekten wirklich notwendig ist.
Grundsätzlich ist der Einsatz von Trac aber nicht auf die Softwarentwicklung beschränkt. So ist z.B. das Ticketsystem recht flexibel konfigurierbar und kann somit auch für andere Anwendungsfälle genutzt werden. Weiterhin kann man den Versionskontroll-Teil komplett deaktivieren, so dass man „nur“ noch ein Wiki plus Ticket-System hat.
Trac kann im „standalone“-Modus betrieben werden, d.h. dass der eingebaute Server zum Ausliefern der Seiten genutzt wird. Dies ist für kleinere Installationen völlig ausreichend, es besteht aber natürlich auch die Möglichkeit, die Software in „echte“ Webserver wie z.B. Apache einzubinden.
Da Trac zwar einfach zu nutzen ist, aber umfangreiche Konfigurationsmöglichkeiten besitzt, werden in diesem Artikel nur einige grundlegende Schritte und Konfigurationen beschrieben. Wer Trac intensiv nutzen will, dem sei das Studium der sehr detaillierten und umfangreichen Dokumentation
empfohlen.
Trac ist in den Ubuntuquellen enthalten und kann über das Paket
trac (universe)
installiert werden[1].
Diese Installationsart ist jedoch nur für den lokalen oder Testbetrieb zu empfehlen, da die Version aus den Quellen nicht unbedingt die neuste Version ist, noch immer alle Sicherheitsupdates enthält.
Alternativ empfiehlt sich die manuelle Installation via easy_install [2] durchzuführen, welches im Paket python-setuptools enthalten ist:
sudo easy_install Trac==0.12
0.12 kann auch durch eine andere Versionnummer ersetzt werden oder durch dev, um die aktuellste Entwicklerversion zu installieren.
Weitere Installationsmethoden sind im Trac-Wiki aufgeführt
.
Bevor man startet muss eine Projektumgebung, das Environment angelegt werden. Sie darf grundsätzlich in jedem beliebigen Verzeichnis liegen. Zu beachten ist aber, dass Trac später unter einem Benutzer gestartet wird, der auch Schreib- und Leserechte im Projektverzeichnis haben muss. Zum lokalen Testen kann man die Umgebung ohne weiteres im eigenen Homeverzeichnis installieren, will man Trac aber im Internet betreiben, so empfiehlt sich z.B. ein Projektverzeichnis unterhalb von /var/www.
Möchte man ein SVN-Quellcodeverzeichnis einbinden, so sollte dies vor dem Anlegen der Projektumgebung geschehen, da der Pfad zum Quellcode während des Anlegens der Umgebung bis zur Trac Version 0.11 abgefragt wird. Das Anlegen eines SVN-Verzeichnisses ist im Artikel zu SVN erklärt. Ab Trac 0.12 wird der Pfad zum Quellcodeverzeichnis nicht mehr abgefragt, dieses kann später manuell eingebunden werden.
Möchte man Trac testen (oder als rein privates Wiki oder Ticket-System nutzen), so kann man die Projektumgebung ohne weiteres im Homeverzeichnis anlegen. Der Befehl lautet[3]:
trac-admin ~/tractest initenv
So wird im Homeverzeichnis das Unterverzeichnis tractest angelegt und alle für Trac notwendigen Daten werden dort hinterlegt.
Während der Installation wird man als erstes gefragt, wie das Projekt heißen soll. Hier kann man einen beliebigen Namen vergeben. Als nächstes wird nach der Verbindung zu Datenbank gefragt. Sofern man die vorgegebene Datenbank SQLite verwenden möchte - wogegen nichts spricht - kann man den Vorgabewert bestätigen. Dann wird die Umgebung komplett angelegt.
Das Projekt kann jetzt über den Aufruf von
tracd --port 8000 ~/tractest
und den Aufruf von http://localhost:8000/tractest im Browser genutzt werden. Der Port kann beliebig gewählt werden, sofern auf dem Port kein anderen Dienst läuft und ein unprivilegierter Port größer 1024 genutzt wird.
Man kann das Programm auch im „Daemon-Mode“ starten, in dem man zusätzlich die Option -d nutzt. Damit läuft die Software automatisch im Hintergrund und „blockiert“ weder den Shellprompt noch werden Meldungen von Trac ausgegeben.
Um den Trac-Server wieder zu stoppen kann man folgenden Befehl nutzen:
sudo killall tracd
Trac und das Projekt laufen jetzt zwar, da allerdings kein Benutzer angelegt ist, kann auf alle Seiten nur lesend zugegriffen werden. Informationen zum Anlegen von Nutzern findet man im Abschnitt Nutzer anlegen.
Das Anlegen eines Projekts für einen (öffentlichen) Server läuft ähnlich, benötigt aber einige wenige Schritte mehr, da Rechte angepasst werden müssen.
#Anlegen der Projektumgebung sudo trac-admin /var/www/trac initenv #Ändern der Dateirechte sudo chown -R www-data /var/www/trac #Starten des Standalone Servers sudo su www-data -c "tracd --port 8000 /var/www/trac/wiki"
Nun sollte der Trac Standalone-Server im Webbrowser unter der Adresse http://localhost:8000 erreichbar sein. Natürlich kann auch hier Trac über die Option -d im Hintergrund laufen, der Befehl zum Stoppen des Servers ist der gleiche wie bei der Installation im Homeverzeichnis.
Trac kann natürlich nicht nur über den eingebauten Standalone-Server betrieben werden, sondern auch an einen „richtigen“ Webserver gebunden werden. Dies ist besonders für größere Projekte empfehlenswert.
Hierzu wird folgendes Paket benötigt:
libapache2-mod-python (universe)
Trac erlaubt den Betrieb via CGI, Mod_python, Fast-CGI oder auch Mod_wsgi. Die letzten beiden Wege sind die, die auch aktuell von den Entwicklern von Trac empfohlen werden (Quelle
). Details zur Installation können im Trac Wiki nachgelesen werden: Fast-CGI
, Mod_wsgi
.
Um mit Trac aktiv arbeiten zu können, also um Tickets zu erstellen oder Wikieinträge zu bearbeiten, muss man sich als Nutzer anmelden und mit den entsprechenden Rechten ausgestattet sein. Per Voreinstellung ist nach dem Anlegen einer Projektumgebung kein Benutzer angelegt, dies muss von Hand erfolgen.
Die folgenden Schritte gelten nur für den Trac Standalone-Server. Nutzt man Trac über einen Server via Mod_python, (Fast-) CGI oder Mod_wsgi, so findet man entsprechende Anleitungen im Trac Wiki
.
Als erstes muss man eine Passwortdatei anlegen. Hat man den Apache-Webserver installiert, kann man dies einfach über das Programm htpasswd erledigen:
sudo htdigest -c /var/www/tractest/.htpass REALM NUTZER
Um weitere Benutzer anzulegen, muss die Option -c weggelassen werden, da sonst die Datei überschrieben wird.
sudo htpasswd /var/www/tractest/.htpass REALM NUTZER
REALM kann prinzipiell beliebig gewählt werden, sollte aber für alle späteren Trac-Benutzer einheitlich sein, da der REALM beim Login ebenfalls verglichen wird.
Wer Apache und damit auch htdigest nicht installiert hat, der kann die Passwortdatei auch mit diesem Skript
, welches auf der Trac Homepage zu finden ist, anlegen.
Jetzt muss man nur noch Trac mit Authentifizierung starten:
tracd --port 8000 --auth "tractest,/var/www/tractest/.htpass,REALM" /var/www/tractest/
Wichtig ist dabei, dass REALM der gleiche ist wie in der Datei .htpass angelegt, sonst funktioniert der Login nicht. Einloggen kann man sich nach dem Start von Trac durch einen Klick auf "Login" im Menü rechts oben.
Um einen Benutzer mit entsprechenden Rechten auszustatten dient das Programm trac-admin, welches zusammen mit Trac installiert wird. Das Programm dient auch zur generellen Verwaltung einer Trac-Installtion, worauf weiter unten noch kurz eingegangen wird.
Trac besitzt eine feingranulare Rechteverwaltung, man kann Rechte für Wiki, Ticket-System und Versionskontrolle getrennt und mehrstufig pro Nutzer vergeben. Man sollte aber zumindest einen Benutzer mit Admin-Rechten anlegen. Dies erledigt der folgende Befehl:
sudo trac-admin /var/www/tractest permission add NUTZERNAME TRAC_ADMIN
Damit wird für das Projekt, welches unter /var/wwww/tractest für den Nutzer NUTZERNAME das volle Admin-Recht gewährt. Liegt das Projekt innerhalb des eigenen Homeverzeichnisses, so kann man dem Befehl sudo weg lassen. Meldet sich dieser Nutzer nun an, so hat er alle Rechte innerhalb des Projekts. Analog kann man natürlich für alle andere, niedrigeren Rechte verfahren. Dabei kann man auch mehrfach verschiedene Rechte pro Nutzer vergeben. Eine vollständige Übersicht über die Rechte findet man im Trac-Wiki auf der Seite Trac Permissions
.
Zur Verwaltung eines Trac-Projekts dient in erster Linie das mitinstallierte Programm trac-admin. Die allgemeine Syntax lautet:
trac-admin /Pfad/zur/Installation/Projekt BEFEHL PARAMETER OPTIONEN
PARAMETER und OPTIONEN können je nach BEFEHL variieren. Ein Beispiel findet man im vorherigen Abschnitt Benutzerrechte, eine umfassende Befehlsreferenz im Trac Wiki auf der Seite Trac Admin
.
Einen Teil der Konfiguration kann man auch über die Oberfläche von Trac erledigen. Hat man sich als Benutzer mit Admin-Rechte angemeldet, so sieht man ganz rechts im Menü den Punkt "Admin". Ein Klickt darauf führt ins Konfigurationsmenü, wo unter anderem Benutzerrechte angelegt, das Ticket-System angepasst sowie die Versionskontrolle eingerichtet werden können.
Globale Einstellung für Trac werden zentral in der Datei trac.ini hinterlegt. Diese Datei findet man im Projektverzeichnis im Ordern conf. Die Datei kann mit einem beliebigen Editor bearbeitet werden[5]. Da die Datei an sich nicht kommentiert ist sollte man vorher die Trac Ini
im Trac Wiki lesen. Einige Beispiele findet man auch im folgenden Abschnitt Design-Anpassung.
| |
| TracWebAdmin im Ubuntuusers-Design |
Auf der Projektseite TracHacks
findet man ein Plugin für Themes, dieses ist hier nicht beschrieben, sondern die manuelle Anpassung, was Kenntnisse über Cascading Style Sheets verlangt.
Um für mehrere Trac-Instanzen unterschiedliche Designs zu nutzen und damit bei einem Trac-Update die Änderungen nicht verloren gehen, wird ein eigenes Verzeichnis für das Trac-Theme angelegt und in der Trac-Konfiguration der einzelnen Instanz bekannt gegeben.
Das eigene Logo mylogo.png und das Icon myicon.ico werden entweder in den Ordner /usr/share/trac/htdocs oder in den /htdocs-Ordner der betreffenden Instanz kopiert. Die Namen müssen in der Datei /var/trac/wiki/conf/trac.ini an entsprechender Stelle angepasst werden [5]. Hat man seine Dateien in den allgemeinen Ordner kopiert, gibt man src=common/... an, wenn man sie in den Ordner der Instanz kopiert hat, muss man src=site/... schreiben. Letztere Version ist günstiger, wenn man ein Update des Systems durchführt, da die Dateien im allgemeinen Verzeichnis dadurch möglicherweise gelöscht werden können.
[header_logo] src = common/mylogo.png (...) [project] icon = common/myicon.ico
Da es sich anbietet, die vorhanden Stylesheets und Symbole als Grundlage für eigene Anpassungen zu nutzen, wird der Ordner als Kopie für das Projekt gespeichert, die über den Webserver verfügbar ist [3].
sudo cp -r /usr/share/trac/htdocs /var/www/trac-theme sudo chown -R www-data /var/www/trac-theme
Der Pfad muss im entsprechenden Abschnitt der /var/trac/wiki/conf/trac.ini bekannt gegeben werden [5]:
[Trac] htdocs_location = http://localhost/trac-theme/htdocs
Design-Änderungen (CSS und Symbole) werden von nun an für dieses Projekt an den Dateien im Ordner /var/www/trac-theme bzw. dessen Unterordnern vorgenommen (ausgenommen Logo und Favicon).
Auch Header und Footer, also die Anfangs- und Endbereiche, die bei allen Seiten gleich sind, können angepasst werden. Hierzu wird zunächst das Verzeichnis /usr/share/trac/templates mit den vorhandenen Vorlagen aus Trac in das Beispiel-Projekt kopiert [3]:
sudo cp -r /usr/share/trac/templates /var/www/trac-theme
Der Pfad muss im entsprechenden Abschnitt der /var/trac/wiki/conf/trac.ini bekannt gegeben werden [5]:
[Trac] templates_dir = /var/www/trac-theme/templates
Ergänzungen an Header und Footer können nun an den Dateien site_header.cs und site_footer.cs vorgenommen werden. Änderungen an den bestehenden Inhalten werden in den Dateien header.cs und footer.cs gemacht.
Trac ist über Plugins erweiterbar. Plugins können z.B. recht einfache über das "Admin" Menü installiert werden und danach in der Datei trac.ini aktiviert werden. Allgemeine Informationen findet man im Trac Wiki
, ebenso wie eine ausgewählte Liste von Plugins
. Des Weiteren gibt es auf der Seite Trac Hacks
eine sehr große Auswahl von Plugins von nicht dem Projekt angehörigen Programmiereren.
Vor der Installation eines Plugins sollte man unbedingt darauf achten, ob das Plugin für die eigene Trac-Version geeignet ist, sonst kann es zu unerwarteten Resultaten kommen. Gerade auf der Seite Trac-Hacks gibt es ein Vielzahl von Plugins, welche nur mit einer bestimmten Trac-Version laufen.
Hat man Trac über die Ubuntu Paketquellen installiert, so sind darüber auch einige Plugins installierbar. Die Pakete haben alle das Namensschema „trac-*“.
Über das oben genannten trac-admin lassen sich auch Sicherungen des Projekts anlegen. Dies geschieht über den Befehl:
sudo trac-admin /Pfad/zum/Projekt/Projektname hotcopy /Pfad/zum/Sicherungsverzeichnis
Möchte man eine Sicherung zurück spielen, so muss an zuerst Trac bzw. den Server stoppen und dann einfach alle Dateien aus dem Sicherungsverzeichnis ins Projektverzeichnis zurück kopieren.
Dies funktioniert nur, wenn man SQLite als Datenbank benutzt. Beim Einsatz einer anderen Datenbank muss man diese separat sichern. Weitere Hinweise findet man im Trac Wiki
.
Falls Python den Fehler meldet, dass ClearSilver nicht installiert ist, kann folgendes ClearSilver-Paket für AMD64
helfen. Es handelt sich bei der Fehlermeldung um einen bekannten Bug.
Fremdpakete können das System gefährden.
Diese Revision wurde am 21. September 2011 um 12:53 Uhr
von anno erstellt.
Dieser Seite wurden folgende Begriffe zugeordnet:
Server, Programmierung, Python, Wikisoftware
2004 – 2011 ubuntuusers.de • Einige Rechte vorbehalten