Ich hatte Trac in der Version 0.11.7 bisher auf einem Windows Server 2003 laufen. Jetzt war es an der Zeit
die Applikation auf einen Windows Server 2012 R2 zu migrieren und dabei auch die Trac Version auf 1.0.8 zu aktualisieren.
Beim Umzug auf den neuen Server ging ich wie folgt vor:
Damit ich das Subversion Repository auf den neuen Server hosten konnte, musste ich zunächst den Subversion Server installieren.
Setup-Subversion-1.8.13.msi
herunterladen. (Von der Seite des Subversion Projekts werden leider keine
Installationsdateien zur Verfügung gestellt.)
sc create svn binpath= "\"C:\Subversion\bin\svnserve.exe\" --service -r C:\SVN" displayname= "Subversion Server" depend= Tcpip start= auto
C:\Subversion
das Installationsverzeichnis von Subversion und
C:\SVN
das Verzeichnis des SVN Repositories. (Mit dem Befehl sc delete svn
kann man
das Service wieder deinstallieren.)
services.msc
starten.
Die Working Copies konnte ich dann mit Tortoise SVN und dem Relocate Menü-Eintrag im Kontextmenü auf
den neuen Server umstellen. Dabei musste nur svn://<Neuer Servername>
eingegeben werden.
Der restliche Pfad im Repository wurde automatisch übernommen.
Im Prinzip bin ich nach
dieser Anleitung
von Jochen Hebbrecht vorgegangen.
Wichtig dabei war, dass ich 32-Bit Versionen der Installationsdateien verwendet habe, obwohl ich einen 64-Bit Server habe.
Für manche Installationsdateien, die ich benötigte gab es nämlich keine 64-Bit Version, was dann zu Problemen hätte führen können.
Außerdem kann man vom Server aus nicht ins Internet, weshalb eine Installation mit Hilfe von Easy-Install für mich nicht möglich war.
Ich habe daher die Installationsdateien für die einzelnen Komponenten heruntergeladen.
Das war meine Vorgangsweise:
python-2.7.10.msi
) heruntergeladen, nachdem in der Anleitung Python 2.7 empfohlen worden ist.
python.exe
nicht zur Path Variable hinzugefügt,
wie in der Anleitung empfohlen.
ez_setup.py
(Download von der Seite
https://pypi.python.org/pypi/setuptools) nicht möglich wird.
Es wird nämlich im ersten Schritt versucht die Datei
setuptools-18.2.zip herunterzuladen.
Ich habe diese Datei manuell heruntergeladen und entpackt. Danach habe ich darin setup.py
über die Commandline ausgeführt.
Allerdings glaube ich, dass diese Installation nicht notwendig war, weil ich die weiteren Schritte nicht mit Easy-Install durchführen konnte.
Genshi-0.7.win32-py2.7.exe
Babel-0.9.6.win32.exe
Trac-1.0.8.win32.exe
Danach waren die Komponenten für das Starten von Trac installiert.
Ich habe das Verzeichnis des Trac Projekts gezippt und auf den neuen Server kopiert und dort entpackt. Danach habe ich
das Startskript an die neuen Pfade angepasst und Trac gestartet. Wenn in C:\Python
Python installiert wurde und
das Trac-Projekt im Verzeichnis C:\trac\myProject
liegt kann mit folgenden Befehl Trac gestartet werden.
(Mit der .htdigest
Datei wurde zusätzlich eine Zugriffskontrolle realisiert. Dabei muss man auch den Realm angeben, mit dem
die Passwörter der Benutzer verschlüsselt wurden.)
"C:\Python\Scripts\tracd" --port 8000 --auth="*",c:\trac\myProject\.htdigest,<:Realm> c:\trac\myProject
Trac war danach unter http://<ServerName>:8000/myProject
erreichbar, hat aber folgenden Fehler angezeigt:
TracError: The Trac Environment needs to be upgraded.
Mit dem Befehlen
"C:\Python\Scripts\trac-admin" c:\trac\myProject upgrade
"C:\Python\Scripts\trac-admin" c:\trac\myProject wiki upgrade
habe ich zunächst das Trac-Projekt und danach die Wiki-Dokumentation aktualisiert.
Zunächst waren die Python 2.7 Bindings für das SVN zu installieren, damit Trac das Repository einlesen konnte. Dafür
habe ich die Datei svn-win32-1.8.13_py27.zip
von http://alagazam.net/
heruntergeladen. Die Zip-Datei habe ich dann im Python-Verzeichnis (C:\Python\Lib\site-packages
) entpackt, so dass es dann
die beiden folgenden Verzeichnisse gibt:
C:\Python\Lib\site-packages\svn
C:\Python\Lib\site-packages\libsvn
Da jetzt mit Trac 1.0.8 mehrere Repositories verwaltet werden können, habe ich in der Administration das Repository nochmals neu angelegt und
den Namen Repository
vergeben. Danach habe ich mit dem Befehl
"C:\Python\Scripts\trac-admin" c:\trac\myProject repository resync "Repository"
das Repository neu mit Trac synchronisiert.
Zusätzlich wird empfohlen eine Post-Commit Aktion im Repository einzutragen, damit die Information eines Commits automatisch an
Trac weitergegeben wird. Dafür bin ich in das Verzeichnis des Repository gewechselt und habe im Ordner hooks
die Datei post-commit.tmpl
kopiert und auf post-commit.bat
umbenannt. In der letzten Zeile dieser Datei
habe ich den Befehl
"C:\Python\Scripts\trac-admin" c:\trac\myProject changeset added "Repository" $REV
hinzufügt. Die Perl- und
Python-Skripte, die im Template aufgerufen wurden, habe ich auskommentiert.
Zum Abschluss wollte ich noch erreichen, dass Trac automatisch auf dem Server läuft, ohne eine Befehl in der Commandline abzusetzen. Hierfür habe ich mir folgende Alternativen ausgesucht.
srvany
verwendet, um Trac als Service laufen zu lassen.
Weil dafür aber die Installation vom Windows 2003 Resource Kit benötigt worden ist,
und ich das für einen Windows 2012 Server nicht mehr für passend halte, habe ich nach einer anderen Möglichkeit gesucht.
nss install tracd
ausführen.C:\Python\python.exe
C:\Python\
"C:\Python\Scripts\tracd-script.py" --port 8000 --auth="*",c:\trac\myProject.htdigest,<:Realm> c:\trac\myProject
services.msc
das Service tracd
starten.