Subversion Server Setup in 5 Minuten unter Ubuntu 12.04

Dieses Tutorial zeigt, wie man ein SVN-Repository in 5 Minuten aufsetzt unter Ubuntu 12.04 LTS.

Setup

Zuerst installieren wir einmal das Basispacket

sudo apt-get install subversion

Nun benötigen wir ein Verzeichnis wo wir unser Repository halten. Ich benutze hier /usr/local/svn.

sudo mkdir /usr/local/svn

Darin erstellen wir nun ein weiteres Verzeichnis das unsere Repositories hält:

sudo mkdir /usr/local/svn/repos

Nun müssen wir einige Berechtigungen für die Verzeichnisse vergeben. In der Regel wollen wir nur bestimmten Benutzern Zugang zu den Repositories geben also erstellen wir eine neue Gruppe

sudo groupadd svn

Nun ändern wir die Gruppe des Repos Verzeichnis:

sudo chgrp svn /usr/local/svn/repos

Die Benutzer der Gruppe benötigen ebenfalls noch schreibrechte:

sudo chmod g+w /usr/local/svn/repos

Ebenfalls wollen wir das alle darin entstehenden Files der Gruppe svn gehören. Das können wir mit dem set-group-ID bit des Verzeichnisses bewerkstelligen.

sudo chmod g+s /usr/local/svn/repos

Jetzt müssen wir nur noch unseren User zur svn-Gruppe hinzufügen

sudo usermod -a -G svn reinhard

Damit die eben durchgeführte Gruppenzuordnung auch aktiv wird, muss man sich neu einloggen und kann dann mit ‚groups‘ checken ob es auch funktioniert hat.

 Erstellen eine Test Repository

Nachdem wir alles nötige aufgesetzt haben können wir nun ein Testrepository erstellen. Jedoch müssen wir dieses auch so erstellen das die Gruppe darauf zugriff hat.

umask 002

Jetzt kann das Repo angelegt werden:

svnadmin create /usr/local/svn/repos/test

Und jetzt setzen wir die umask wieder zurück

umask 022

Wir haben nun ein leeres Repository das nur darauf wartet ausgecheckt zu werden damit wir eine working-copy erstellen:

svn checkout file:///usr/local/svn/repos/test

Nun existiert im aktuellen Pfad ein Verzeichniss test. Darin erstellen wir nun einmal ein einfaches File

cd test
 echo 'Hello World!' > hello.txt

Wir fügen das File zu svn hinzu

svn add hello.txt

Und nun noch commiten:

svn commit -m "First Checkin hello.txt"

 Zugriff mit dem SVN Protokoll

Um von anderen Maschinen auf das Repository zugreifen zu können benötigen wir svnserve. Dies ist bereits in der Distro vorhanden und muss nur konfiguriert werden. Pro Repository kann das im Unterverzeichnis conf/ vorgenommen werden.

Als erstes benötigen wir ein Passwort-file das unsere berechtigten Benutzer und Passwörter enhält

sudo vi /etc/subversion/passwd-team

darin erstellen wir einige Benutzer

[users]
reinhard = einpasswort
markus = einanderespasswort
thomas = nocheinpasswort

Dadurch das die Passwörter im Klartext enthalten sind sollte das File ausreichend geschützt werden:

sudo chmod 600 /etc/subversion/passwd-team

Nun öffnen wir das svnserve.conf des test Repositories:

sudo vi /usr/local/svn/repos/test/conf/svnserve.conf

Im ‚general‘ Part fügen wir nun folgendes hinzu:

[general]
anon-access = none
password-db = /etc/subversion/password-team
realm = Mein Team

Nun können wir auf der Commandline svnserve starten und testen ob alles funktioniert

sudo svnserve -d --foreground -r /usr/local/svn/repos

Normalerweise läuft svnserve als Daemon Prozess im Hintergrund (-d) jedoch das –foreground lässt in direkt mit der Shell laufen und kann somit auch einfach via CTRL+C beendet werden. Für den richtigen Betrieb verwenden wir dann jedoch nur noch -d . -r gibt svnserve den Pfad zu den Repositories an.

An einem anderen PC im Netz können wir nun mit folgendem Befehl das Test-Projekt auschecken:

svn checkout svn://192.168.0.11/test --username reinhard

Svn fragt hier noch nach dem Passwort und erstellt uns anschließend eine working-copy.

Subversion Init Skript

Um nun am Server svnserve immer zu starten wenn der Server startet, bnötigen wir ein init Skript.
Das kann man sich natürlich selbst schreiben und unter /etc/init.d/ ablegen, oder dieses fertige Skript verwenden. Bei dem Skript muss noch der Pfad zum Reporistory angepasst werden. Einfach speichern unter /etc/initd./svnserve und schreibrechte geben:

sudo chmod +x /etc/init.d/svnserve

Jetzt noch das Skript im System installieren:

sudo update-rc.d svnserve defaults

Nun können wir auch gleich das skript testen und svnserve starten:

sudo /etc/init.d/svnserve start

Das wars nun auch schon. Nun besitzt man ein einfaches SVN Repository mit dem man nun arbeiten kann.

Was noch?

Das hier beschriebene Setup ist eines der einfachsten für Subversion. Natürlich gibt es im Web sehr viele Setups mit WebDAV über Apache und Webclient, jedoch finde ich das Setup meist zu kompliziert und außerdem benötigt man eine Apache-Instanz auch noch zusätzlich. Ebenfalls kann man natürlich an der Benutzerberechtigung noch vieles ändern. Ebenfalls ist es möglich virtuelle Benutzer zu verwenden. Mehr dazu im SVN-Book . Ich selbst verwende gerne Rapid-SVN als Tool zum browsen eines Repository. Eine geeignete MacOSX (intel) Version findet man hier.

 

0 Kommentare

Dein Kommentar

An Diskussion beteiligen?
Hinterlasse uns Deinen Kommentar!

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.