Home > Subversion > Einrichten eines Subversion Servers auf einem Debian Linux System

Einrichten eines Subversion Servers auf einem Debian Linux System

Für meine zukünftigen Projekte möchte ich phpUnderControl in Verbindung mit Subversion einsetzen. Die Installation ist im folgenden beschrieben.

apt-get install subversion

Wenn alles korrekt installiert wurde kann man ein Projektarchiv anlegen.

svnadmin create /var/repos

Das Verzeichnis sieht nun so aus:

root@lvps:/var/repos# ls -l
total 7.0K
-rw-r--r-- 1 root root  379 Oct  8 12:13 README.txt
drwxr-xr-x 2 root root 1.0K Oct  8 12:13 conf
drwxr-xr-x 2 root root 1.0K Oct  8 12:13 dav
drwxr-sr-x 2 root root 1.0K Oct  8 12:13 db
-r--r--r-- 1 root root    2 Oct  8 12:13 format
drwxr-xr-x 2 root root 1.0K Oct  8 12:13 hooks
drwxr-xr-x 2 root root 1.0K Oct  8 12:13 locks

Als nächstes brauchen wir einen Server der auf dieses Archiv zugreift damit wir Projektdaten einpflegen können.

man svnserv

Laut Dokumentation kann er als Standalone Prozess oder auf Abruf als Intetd Dienst gestartet werden. Da phpUnderControl in einem definierten Intervall auf das Archiv zugreift entscheide ich mich, den Server als Standalone Prozess zu starten.

Damit der Server nicht als root läuft lege ich einen Benutzer svn an.

adduser svn

Danach deaktiviere ich die Loginmöglichkeit über SSH

passwd -l svn

Das Verzeichnis /var/repos wird dem Benutzer und der Gruppe svn zugewiesen

chown -R svn:svn /var/repos

Nun die Konfiguration des Servers.

root@lvps:/var/repos# cd conf/
root@lvps:/var/repos/conf# vi svnserve.conf

In der Datei entferne ich das Kommentarzeichen vor general und ändere folgende Zeilen:

[general]
anon-access = none
auth-access = write
password-db = passwd
realm = forestsoft
 
[sasl]
use-sasl = true
min-encryption = 128
max-encryption = 256

Hinweis: SASL muss vom SVN Server unterstützt werden. Bei älteren Linux Distributionen kann es sein das es nicht mit einkompliert ist.
Herausfinden kann man das folgendermaßen:

root@lvps:/var/repos# svnserve --version
[....]
Cyrus SASL authentication is available.

Damit der SASL weiss wie authentifiziert werden soll brauchen wir eine Konfigurationsdatei im Verzeichnis /usr/lib/sasl2.

root@lvps:/var/repos/conf# vi /usr/lib/sasl2/svn.conf
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: DIGEST-MD5
sasldb_path: /usr/lib/sasl2/svndb

Und die dazugehörige sasldb:

root@lvps:/var/repos/conf# saslpasswd2 -c -f /usr/lib/sasl2/svndb -u forestsoft benutzername

Hierbei ist forestsoft der realm der in der /var/repos/conf/svnserve.conf angegeben worden ist.

Jetzt starte ich den Server Prozess als Benutzer svn

su svn
svnserve -d -r /var/repos
exit

Kurzer Check ob alles geklappt hat:

root@lvps:/var/repos/conf# ps aux | grep svn
svn      22323  0.0  0.0  2792 1276 pts/2    T    12:56   0:00 svnserve -d -r /var/repos
root     22466  0.0  0.0  1540  492 pts/2    S+   12:59   0:00 grep svn

Prozess läuft also und der Server ist nun bereit Anfragen entgegen zu nehmen.

Im nächsten Teil richte ich den Client ein und übertrage mein Projekt.