« Achte auf die Reihenfolge innerhalb von $uses! Download für JavaScript wiederkehrender Event mit .htaccess Anpassung »

Lokale Installation von Subversion mit WebDav

15. Januar 2010 Roland

Ich musste auf meinem Netbook ein Subversion Repository installieren, damit ich im Zug eine Migrationssoftware entwickeln und lokal testen konnte.
Das System sollte so reagieren, wie das später vorhandene System. Ich musste also über den Webserver und mit WebDav die Anbindung meiner Migrationssoftware simulieren.
Im Netz gibt es sehr viele gute Installationsanleitungen zu Subversion.
Bei der Installation musste ich jedoch an ein paar Dateien rumfummeln bei denen ich mehrere Seiten aufrufen musste.
Sowas ärgert mich und deshalb sind hier alle Schritte, die ich durchführen musste, aufgelistet.

Softwarepaket Installation

Wenn man über den Webserver auf Subversion zugreifen will, braucht man natürlich einen Webserver (apache2) und Subversion.
Also zuerst im /etc/make.conf die use-Flags apache2 und subversion eintragen.
Dann apache2 und subversion emergen.
Falls apache2 schon vorab installiert war, lohnt sich ein emerge –newuse –deep world. Damit ist sichergestellt, dass apache2 die notwendigen Module, wie beispielsweise mod_dav nachinstalliert.

Apache konfigurieren

Die Konfiguration von Apache2 erfordert das Anpassen von ein paar Dateien.

/etc/apache2/modules.d/47_mod_dav_svn.conf

Hier wird der Zugriff auf die SVN-Repositories eingetragen.
Ich will meine SVN-Repositories im Verzeichnis /var/svn/repos anlegen.
Nehmen wir mal an, dass dein SVN-Repository hugo heißen soll.
Dann kannst du die folgenden Einträge in 47_mod_dav_svn.conf eintragen:

  1. <ifdefine SVN>
  2. LoadModule dav_svn_module modules/mod_dav_svn.so
  3. </ifdefine><ifdefine SVN_AUTHZ>
  4. LoadModule authz_svn_module modules/mod_authz_svn.so
  5. </ifdefine>
  6. <location /svn/repos/hugo>
  7.         DAV svn
  8.         SVNPath /var/svn/repos/hugo
  9.         AuthType Basic
  10.         AuthName "Subversion repository hugo"
  11.         AuthUserFile /var/svn/conf/svnusers
  12.         <limitexcept GET PROPFIND OPTIONS REPORT>
  13.                 Require valid-user
  14.         </limitexcept>
  15.         SVNIndexXSLT /svnindex.xsl
  16. </location>

Du kannst hier recht gut sehen was alles konfiguriert werden muss.
Zuerst muss das mod_dav_svn und das mod_authisolde htdocs # cz_svn Modul geladen werden. Damit erreichst du, dass später über das DAV Protokoll mit dem Subversion System kommuniziert werden kann.
Mit SVNPath gibst du an, wo dein Repository schlussendlich liegt. (Hier heißt das Repository hugo)
Ich habe in /var/svn/conf/svnusers ein File generiert in dem ich alle berechtigten User eintrage. Dazu später mehr.
Mit SVNIndexXSLT kannst du das Repository über einen Webbrowser ansprechen und darin rumstöbern.

svnindex.xsl bereistellen

Wenn du mit dem Webbrowser später dein SVN-Repository aufrufen willst, muss diese Datei im localhost verfügbar sein.
Da im 47_mod_dav_svn.conf das svnindex.xsl direkt im Root-Verzeichnis des localhost deklariert wurde, müssen wir es dort hinkopieren.
Meine copy-Befehle lauteten dafür:

  1. cp /usr/share/doc/subversion-1.6.6-r10/svnindex.xsl.bz2 /var/www/localhost/htdocs/
  2. bunzip2 /var/www/localhost/svnindex.xsl.bz2

Falls du eine andere Subversion Version hast, musst du den Copy-Befehl natürlich entsprechend anpassen.

svnusers erstellen

Ich möchte nur User, die auch berechtigt sind, auf das SVN zugreifen lassen.
Deshalb generiere ich in /var/svn/conf/svnusers eine entsprechende Datei mit meinem User.

  1. htpasswd2 -c /var/svn/conf/svnusers roland

Du kannst mit htpasswd2 natürlich noch weitere User hinzufügen. Wenn du z.B. alfred hinzufügen willst, dann schreibe

  1. htpasswd2 /var/svn/conf/svnusers alfred

Subversion Server starten

Jetzt solltest du mit /etc/init.d/svnserve start den Subversion Server starten. Wenn du ihn bei jedem Neustart starten willst, lohnt sich noch ein rc-update add svnserve default.

Repository hugo anlegen

Wir müssen noch das Repository anlegen, damit wir auch was zum Zugreifen haben :)

  1. svnadmin create /var/svn/repos/hugo

Apache neu starten

Immer wenn du an der 47_mod_dav_svn.conf rumfummelst, und beispielsweise neue Repositories einträgst, musst du den Apache neu starten.
Das kannst du mit pache2ctl graceful oder für die harten Jungs mit /etc/init.d/apache2 restart erledigen.

So das wars

Mehr sollte es eigentlich nicht sein.
Happy Subversioning!

Merken und weiterempfehlen Diese Icons verlinken auf Bookmark Dienste bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
  • Technorati
  • Wikio DE
  • Webnews
  • MisterWong
  • Y!GG
  • Digg
  • del.icio.us

Artikel mit ähnlichen Schlagwörtern

Der Beitrag wurde am Freitag, den 15. Januar 2010 um 07:21 Uhr veröffentlicht und wurde unter Software, gentoo abgelegt.

Dir gefiel der Artikel? Dann abonniere doch den RSS Feedrss

Du kannst die Kommentare zu diesem Eintrag durch den RSS 2.0 Feed verfolgen. Du kannst einen Kommentar schreiben, oder einen Trackback auf deiner Seite einrichten.

...deine Chance den ersten Kommentar zu schreiben... ;-)

Schreibe mir

Kommentare abonnieren ohne selbst zu kommentieren

zum Seitenanfang