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.
Hinterlasse einen Kommentar
An der Diskussion beteiligen?Hinterlasse uns deinen Kommentar!