SVN Server unter Debian Lenny / Ubuntu:
Erstellt am 3. Dezember 2009 um 12:25 Uhr von ronin
Für die Entwicklung ist eine Versionsverwaltung immer hilfreich.
Z.b. Subversion verhindert, das Entwickler die Änderungen anderer versehentlich überschreiben bzw. diese verloren gehen.
Einen SVN-Server aufzusetzen ist nicht besonders schwer, vorausgesetzt es besteht Rootzugriff.
Natürlich setzt die installation allgemeine Erfahrung in Serveradministration unter Linux und den sicheren Umgang mit der Shell voraus.
Es ist auch Vorsicht angebracht, denn es wird Software installiert (subversion) und die Apache-Konfiguration geändert.
Wie immer gilt: BACKUP !
1: Subversion installieren
apt-get install subversion
SVN-Modul für den Apache installieren (benötigt für WebDAV)
apt-get install libapache2-svn
ein SVN-Sever ist im normalfall über das SVN-Protokoll erreichbar
svn://meinserver/meinrepository/
Wenn eine Firewall dazwischen sitzt, kann sie das SVN-Protokoll blockieren.
Webdav ist hier eine Lösung.
webdav-Module aktivieren
a2enmod dav_fs
a2enmod dav
a2enmod empfiehlt nun den Apache neu zu starten, das ist hier aber noch nicht notwendig.
zunächst richten wir einen Ordner für den SVN-Server ein.
z.B. /var/svnroot/
mkdir /var/svnroot/
SVN-Server starten
svnserve -d -r /var/svnroot/
# -d damit der Server als deamon läuft und nicht gleich wieder beendet wird.
# -r bestimmt das Root-Directory für alle Repositories
Repo anlegen
svnadmin create /var/svnroot/test/
2: Zugang einrichten
Nun gilt es noch den Zugang zu definieren. Dazu werfen wir einen Blick in das “conf” Verzeichnis im Repository.
cd /var/svnroot/test/conf/
“passwd” ist die Datei für den Zugriff, allerdings nutzt diese unverschlüsselte Passwörter !
Beispiel: username = passwort
tragen wir hier ein:
testuser = testpasswort123
die Datei “svnserve.conf” bestimmt die allgemeinen zugriffsregeln für dieses Repository.
suchen wir hier die Zeile “#password-db = passwd” und kommentieren sie ein.
Es ist natürlich sinnvoll sich hier die anderen Rechte-Optionen anzusehen, denn:
VORSICHT:
Mit dieser ‘kurzen’ Konfiguration hat jeder lesenden Zugriff auf die Repositories !!!
Die eingegebenen Passwörter sind nur für ein Commit notwendig, also schreibenden Zugriff.
Ein kurzer Blick weiter oben zeigt die zeilen “anon-access = read” und “auth-access = write”
wenn wir diese einkommentieren und auf “anon-access = none” ändern, ist auch das korrigiert.
so.
jetzt können wir mit einem “svn co svn://meinserver/test/” die Daten auschecken.
3: Apache WebDAV
Als nächstes werfen wir einen Blick auf die Apache-Konfiguration.
Ich setze hier einen existierenden Virtual-Host vorraus, der für den SVN-Zugriff genutzt werden kann.
mit “/etc/init.d/apache2 restart” muss der Apache noch neu gestartet werden, da ja zuvor neue Module installiert wurden (dav_fs, dav)
IN den Virtualhost fügen wir dann folgende Konfiguration ein:
<Location /svntest>
DAV svn
SVNPath /var/svnroot/testRequire valid-user
AuthType Basic
AuthName “My SVN-Test”
AuthUserFile /var/svnroot/test/conf/dav_passwd
</Location>
nun, wie in der letzten Zeile erkennbar, brauchen wir noch einen Passwort-Datei für den webdav-Zugriff. Die passwd die wir zuvor für den SVN-Server eingerichtet haben ist hier wirkungslos.
also legen wir mittels “vi” die Datei Datei an.
Wichtig: die Passwörter werden crypt-Kodiert abgelegt.Das sieht dann meistens in etwa so aus:
username:$1$Abjfkjsx.I o.ä.
Crypt-Generatoren gibt es im Internet genug.
Anschließend laden wir den Apache neu “/etc/init.d/apache2 reload”
hier dringend drauf achten ob es Fehlermeldungen gibt, ggf. hat man sich in der Config vertippt.
Beschwert sich der Apache hier über “DAV svn” oder “SVNPath” fehlt ggf. eines der MOdule die wir oben installiert haben.
(Apt: libapache2-svn, Apache: dav_fs, dav)
ggf. benötigt der Apache (www-data) Zugriff auf den Ordner des Repositories, also am besten root:www-data einstellen.
wenn alles funktioniert hat, können wir nun über den Browser Zugreifen oder ein Checkout aus http://meinserver/svntest/ durchführen.
» Kategorie Server (Linux)
Kommentare
2 Antworten zu “SVN Server unter Debian Lenny / Ubuntu:”
Einen Kommentar schreiben

Am 16. Januar 2010 um 11:49 Uhr
Hallo zusammen!
Um die dav_passwd anzulegen wechsel man einfachi n das verzeichnis /var/svnroot/test/conf
und führt “htpasswd -c -b dav_passwd ” aus.
Am 16. Januar 2010 um 11:49 Uhr
Hallo zusammen!
Um die dav_passwd anzulegen wechsel man einfachi n das verzeichnis /var/svnroot/test/conf
und führt “htpasswd -c -b dav_passwd username passwort ” aus.