Subversion Server unter MacOS 10.7 Lion / Lion Server
Ihr wollt auf eurer OS X 10.7 Lion Maschine einen SVN-Server installieren? Dann ist dieser Beitrag das richtige für euch.
– XCode aus dem AppStore installieren (dauert ein wenig)
– MacPorts für OS 10.7 Lion herunterladen und installieren
– Terminal öffnen (Programme/Dienstprogramme) und folgendes eingeben:
sudo port -v selfupdate
Admin-Kennwort eingeben, und warten, bis MacPorts seine Repositories aktualisiert hat. Alles was jetzt kommt, im Terminal eingeben.
sudo port -v install subversion +mod_dav_svn
Warten, bis alles heruntergeladen und kompiliert ist. Nun den Ordner erstellen, in dem die Repositories legen sollen. Ich mache der Einfachkeit halber diesen nun mal im Root, passt daher die Pfade entsprechend an oder erzeugt einen Symlink nach /svn.
sudo mkdir /svn
Oder eben – wenn ihr mit einem Symlink arbeiten wollt
sudo ln -s /Pfad/zu/eurem/Subversion/Verzeichniss /svn
Nun legen wir testweise ein Repository an
cd /svn
sudo mkdir testrepo
sudo svnadmin create –fs-type fsfs testrepo
Mit dem letzten Befehl wird Repository-Struktur von SVN für das Verzeichniss „testrepo“ angelegt/initialisiert.
Nun ist wichtig, daß der Benutzer „www“, unter dem der Apache läuft, welcher die Zugriffe auf das SVN-Modul von außen weitergibt, Besitzer des svn-Stammverzeichnisses ist und somit Zugriff darauf hat. Also:
sudo chown -R www /svn
Nun müssen wir die Konfiguration des Apache-Server anpassen, damit dieser die SVN-Module lädt und das Verzeichniss korrekt verarbeitet. Dazu bitte wie folgt vorgehen:
cd /opt/local/apache2/conf
Nun mit dem bevorzugten Texteditor die Datei httpd.conf editiert (ich verwende hier vi, wer damit noch nicht gearbeitet hat, ersetzt evtl. den Befehl „vi“ durch „pico“, da dieser Editor etwas „verboser“ und einsteigerfreundlich daher kommt).
sudo vi httpd.conf
Nun suchen wir den Bereich, in dem die dynamischen Module geladen werden, erkennbar an dem Einleitungstext „dynamic modules“ bzw. einer lange kette an „LoadModule“ befehlen. An deren Ende setzt ihr folgende zwei Zeilen:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
Nun setzt ihr ans Ende der Datei noch die Konfiguration des Verzeichnisses:
<Location /svn/>
DAV svn
SVNParentPath /svn
SVNListParentPath on
</Location>
WICHTIG: Durch die Installation des Subversion-Pakets über MacPorts wurde ein Apache-Server installiert. MacOS X 10.7 Lion Server bringt ebenfalls einen (sehr modifizierten) Apache-Server für seine Wiki- und Web-Funktionen mit. Wenn dieser ebenfalls genutzt werden soll, ändert bitte in der httpd.conf ebenfalls die Zeile „listen 80“ im oberen Bereich der Datei auf etwas anderes als 80, da sonst die Wiki- und Web-Dienste von OS X Lion Server nicht mehr funktionieren. Wenn ihr dies getan habt, müsst ihr nach dem Neustart des „neuen“ Apache-Server (folgt gleich) auch den „Lion“-Apache-Server neu starten. Dazu einfach im Server-Tool den Dienst Web ab- und wieder anschalten. Beachtet, daß ihr – wenn ihr die Zeile „listen 80“ bspw. auf „listen 81“ ändert, ihr im folgenden auch die IP bzw. URL anpassen müsst. Aus „localhost“ wird „localhost:81“, aus „192.168.23.42“ wird „192.168.23.42:81“.
Nun speichern wir die Änderungen (vi :wq!, pico Strg-x, y, enter) und starten den Apache-Server neu, damit diese wirksam werden:
sudo /opt/local/apache2/bin/apachectl -k restart
Jetzt solltet ihr bereits über http://localhost/svn auf das Verzeichniss via Browser zugreifen können bzw. über einen SVN-Client ein/auschecken können, die URL des Repositories dazu lautet: http://ip.eures.servers/svn/testrepo
Testweise commiten wir in das Verzeichniss noch ein paar Daten:
cd ~
mkdir svn_tmpl
cd svn_tmpl
mkdir trunk branches
svn import . http://localhost/svn/testrepo -m „Testimport“
Das wars! Viel Spaß mit eurem neuen SVN-Server.
Vielen Dank für dieses tolle Tutorial! Damit habe ich es hinbekommen. Bitte unbedingt mehr zum Thema SVN Server! 🙂
Tolle Arbeit, die ihr hier leistet, ich bin begeistert.
Dieses Tutorial hat mich in meinem Versuch, einen SVN-Server zu installieren wesentlich weitergebracht als alles mögliche andere.
Ich habe einen Mac mini mit Lion Server und lasse auch den Webserver der Server.App darauf laufen.
Ich habe den Apache hier mit Port 81 konfiguriert. das Heimatverzeichnis findet er über http://localhost:81 einwandfrei, aber wenn ich http://localhost:81/svn benutze, bekomme ich Fehler 404 – Not Found.
Meine Apache und *nix-Kenntnisse halten sich in starken Grenzen, deswegen habe ich keine Idee woran es liegen könnte, da ich ansonsten dein Tutorial Schritt für Schritt befolgt habe. Vielleicht hast du ja eine Idee! Ich werde mich ein wenig durch die Doku von Apache wühlen und eine Lösung hier posten, falls ich eine finde.
Vielen Dank für deine Anleitung soweit!
Gruß, Sven
Hallo Sven,
schreib mir doch mal eine Mail an uw@geektech.de, dann kann ich dir ein paar Tipps geben, die das Problem lösen können.
gruß
Ulrik