Subversion trifft Leopard: SVN Konfiguration für OS X 10.5

Samstag, 10. Januar 2009 |  Autor:

Werden Entwicklungsprojekte grösser als gedacht, arbeiten gar mehrere Entwickler an einem Projekt so ist spätestens bei der Zusammenführung von Änderung Chaos angesagt. Um das zu umgehen gibt es verschiedene Tools zur Versionskontrolle. Das wohl bekannteste CVS dürfte dem einen oder anderen schon untergekommen sein. Subversionvon tigris.org ist ein weiteres Tool zur Versionskontrolle, welches einige Unterschiede zum CVS hat.

So schreibt Wikipedia: Subversion wurde als moderne Ablösung für das mit vielen Schwächen behaftete, in Entwicklerkreisen aber weiterhin sehr verbreitete ProgrammCVSentwickelt. Deshalb ist es in der Bedienung sehr ähnlich gehalten, behebt aber einige Schwächen von CVS. So ist es mit Subversion z.B. möglich, Dateien oder Verzeichnisse zu verschieben oder umzubenennen, ohne die Versionsgeschichte zu verlieren

Neben den Sourcen zum selbständigen Kompilieren, stellt collabnet auch die Pakete für Fink und MacPort, sowie fertige Universal Binary Pakete bereit.

Aber der Reihe nach, als erstes stellen wir die Umgebung einmal vor:

  • Auf “frodo” soll später das Repository liegen, das unsere Daten hält. “frodo” ist ein Leopard Server 10.5.6, es geht auch die Arbeitsplatzversion der Raubkatze.
  • Auf “riddick” liegen die lokalen Arbeitskopien mit denen gerarbeitet wird, “riddick” ist einer von mehreren Entwickler Mac’s.
  • Wir legen unser Repository unter /SharedItems/subversion/repositories ab.

Da “riddick” öfter einmal unterwegs ist muss er sich von ausserhalb mit “frodo” unterhalten können. Für die Konfiguration sollte man etwas mit dem Terminal umgehen können, aber wer das nicht kann wird wohl wenig Verwendung für einen Subversion Server haben.

Subversion 1.5.4 Install Pkg1. Die Installation: Sowohl für “frodo”, wie auch für “riddick”, benötigen wir dieSubversion Binariesfür den aktuellen Stand 1.5.4.
Nach dem Ausfüllen des Formulars wird die ca. 15.5 MB große Datei Subversion-1.5.4.dmg heruntergeladen.
Das DMG mit Doppelklick öffnen und die Subversion-1.5.4.pkg Installationsdatei starten.

Die Installation müsste in etwa so ablaufen.

Subversion Install 1 Subversion Install 3
Subversion Install 4 Subversion 5

Wichtig hierbei ist das Bild zwei, denn die Pakete von collabnet legen alle notwendigen Dateien unter /opt/subversion.

Damit auch die richtige Version gezogen wird muss über die PATH Variable das richtige Verzeichnis gesetzt werden. Dafür gibt es mehre Wege, einer davon ist die Datei /private/etc/profile zu editieren.

vi /private/etc/profile
export PATH=/opt/subversion/alias:/opt/subversion/bin:$PATH

Danach neu anmelden oder

source /private/etc/profile

eingeben.

Wenn alles geklappt hat, sollte die Ausgabe des folgenden Kommandos so aussehen

frodo:etc dkr$ svn --version 
svn, version 1.5.4 (r33841) compiled Oct 27 2008, 11:19:10  
Copyright (C) 2000-2008 CollabNet. 
Subversion is open source software, see http://subversion.tigris.org/ 
This product includes software developed by CollabNet (http://www.Collab.Net/)....

Damit ist Subversion erfolgreich installiert und wir können uns an die Konfiguration machen.

2. Konfiguration SVN

2.1 SSH Schlüssel
Für die Kommunikation zwischen Server und Client will ich hier das svn-Protokol durch einen SSH Tunnel verwenden.
Dafür benötige ich als erstes den öffentlichen Schlüssel von “riddick”. Eine gute Anleitung gibt es hier, im wesentlichen sind hier folgende Schritte nötig:

riddick:~ david$ ssh-keygen -b 2048 -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/david/.ssh/id_rsa): Mit Enter weiter
Enter passphrase (empty for no passphrase): Mit Enter weiter
Enter same passphrase again: Mit Enter weiter
Your identification has been saved in /Users/david/.ssh/id_rsa. 
Your public key has been saved in /Users/david/.ssh/id_rsa.pub. 
The key fingerprint is: 2f:85:ae:48:ef:ae:0f:36:ae:39:2a:9c:6f:90 david@riddick.local
The key's randomart image is:
+--[ RSA 2048]----+

Im Verzeichniss /Users/.ssh liegen nun die zwei gerade erzeugten Dateien. Die Datei id_rsa ist der private Schlüssel und darf nie jemanden ausgehändigt werden. Am besten sichert man sich diesen auch nochmal extra.

Die Datei id_rsa.pub ist der öffentliche Schlüssel den wir gleich auf “frodo” kopieren.

scp id_rsa.pub frodo:/Users/admin

2.2 Benutzer für Subversion anlegen und anpassen

Mit den Arbeitsgruppenmanager melden wir uns jetzt an “frodo” an und erstellen eine SVN Benutzer.

Benutzer svn anlegen

SVN Gruppe hinzufügen

Damit überhaupt der SSH Zugang möglich ist, müssen wir auf “frodo” die “entfernte Verwaltung” aktiveren.

Bei Arbeitsplatzversionen findet man diese Funktion in der Systemsteuerung->Sharing.


Bei der Serverversion können wir das über den Servermanager erledigen. Nun können wir das Terminal auf “riddick” öffnen und an “frodo” anmelden.
Um die Public-Key Authentifizierung zu testen wird jetzt der öffentliche Schlüssel in die authorized_keys eingegetragen.

ssh admin@frodo
The authenticity of host 'frodo (10.0.0.8)' can't be established.
RSA key fingerprint is da:5d:a2:54:98:aa:9a:23:b2:18:73:11:31:57:9e:3d.
Are you sure you want to continue connecting (yes/no)? yes 
Warning: Permanently added 'frodo,10.1.1.8' (RSA) to the list of known hosts.
Password:
Last login: Thu Jan  1 18:01:17 2009 from 10.0.0.50

Damit könen wir uns nun ohne Passwort an “frodo” anmelden. Da alle Benutzer über einen OS User die Änderungen vornehmen sollen, müssen wir wir das ganze auf auf den SVN-User anwenden

frodo:~ admin$ sudo bash
Password:

Damit werden wir der root-User

bash-3.2# cat /Users/admin/id_rsa.pub >> /Users/svn/.ssh/authorized_keys

und fügen unseren öffentlichen Schlüssel den bekannten Schlüsseln des Users svn hinzu. Jetzt müssen wir die Datei /Users/svn/.ssh/authorized_keys um einige Einstellungen erweitern.

Aus der Zeile

ssh-rsa AAAAB3NzaSDFSDF...Viele Zeichen ... == switch2mac@riddick.local

wird nun die Zeile

command="/opt/subversion/alias/svnserve -t --tunnel-user=switch2mac",
no-port-forwarding, no-agent-forwarding,no-X11-forwarding,no-pty 
ssh-rsa AAAAAB3NzaS ... Viele Zeichen ... == switch2mac@riddick.local

Der Zeilenumbruch ist nur hier im Blog.

2.3 Subversion Scripte Damit wir gleichzeitig mehrere subversion Prozesse starten können und uns nicht die Installation zu zerstören müssen
wir noch für die wesentlichen Kommandos kleine Skripte schreiben, die die umask anpassen.Genauer müssen wir die Scripte für svnadmin, svnlook, svnserve anpassen.
Da wir weiter oben schon die Pfadvariable auf /opt/subversion/alias gesetzt haben legen wir diese in dem Verzeichnis an.
Die Scripte sehen so aus:
svnadmin

#!/bin/sh 
umask 002
/opt/subversion/bin/svnadmin "$@"

svnlook

#!/bin/sh umask 002
/opt/subversion/bin/svnlook "$@"

svnserve

#!/bin/sh
umask 002
exec /opt/subversion/bin/svnserve -r /SharedItems/subversion/repositories "$@"

3.0 Anlegen des Repositories

frodo:~ admin$ sudo bash
Password:

Damit werden wir der root-User und Erstellen das subversion Verzeichnis:

cd /SharesItems
mkdir subversion
cd subversion
mkdir repositories
chgrp -R subversion repositories
mkdir ./repositories/projekt
chown -R svn:subversion ./repositories/projekt 
svn create /SharesItems/subversion/repositories/projekt
chmod 770./repositories/projekt
cd projekt
chmod g+t db

Jetzt müssen wir nur noch die Rechte für den Zugriff pflegen.

vi ./repositories/projekt/conf/svnserve.conf
[general]
### These options control access to the repository for unauthenticated
### and authenticated users.  Valid values are "write", "read",
### and "none".  The sample settings below are the defaults.
#anon-access = read
#auth-access = write

wie folgend abändern:

[general]
### These options control access to the repository for unauthenticated
### and authenticated users.  Valid values are "write", "read",
### and "none".  The sample settings below are the defaults.
anon-access = none
auth-access = write

Wenn alles geklappt hat sollte jetzt der Zugriff von “riddick” funktionieren:

svn list svn+ssh://svn@frodo/projekt

Bei Fragen die Kommentarfunktion verwenden.

Trackback: Trackback-URL | Feed zum Beitrag: RSS 2.0
Thema: Anleitung, OSX, SAP, Software, Tipps, Tools

Diesen Beitrag kommentieren.

Kommentar abgeben