Dieses Tutorial befasst sich mit dem Erstellen eines Subversion Servers komplett aus den Sourcen.
Dies beinhaltet den Subversion Server mit Anbindung an den Apache und Zugangs Kontrolle. Dies ist vielleicht ein wenig zeitaufwendiger als mit fertigen Paketen, aber man ist flexibler und meistens auf einem neueren Stand wie mit den fertigen Paketen. Zusätzlich hat man mehr Kontrolle über sein System. Außerdem macht es mehr Spaß ;-)
Inhalt
- Apache vorbereiten
- Subversion installieren
- Subversion konfigurieren
- Apache Anzeige und Zugangs Kontrolle einrichten
Apache vorbereiten
Wie man den Apache Webserver konfiguriert, damit er richtig funktioniert werde ich hier nicht erklären.
Es sollte als schon die Kenntnis da sein wie man einen Apache Webserver aufsetzt/installiert.
Sourcen herunterladen
Wir brauchen die Sourcen des Apache Webservers. Dies können bei Apache.org heruntergeladen werden.
httpd.apache.org
Ladet euch die Unix Sourcen herunter.
Entpacken und installieren:
tar -xvzf httpd-2_0_NN.tar.gz
cd httpd-2_0_NN
./configure --enable-so --enable-dav
Die zusätzliche Option --enable-dav aktiviert die Rechte Verwaltung im Apache. Damit kann man auf Bestimmte Verzeichnisse Rechte vergeben. Hat nichts mit der .htaccess zu tun.
Nach dem dies erfolgreich durchgelaufen ist:
su root (anmelden als root)
make
make install
Apache hat sich nun standartmäsig nach /usr/local/apache2 installiert.
Subversion installieren
Sourcen herunterladen
Die Source findet man hier: subversion.tigris.org
Ladet auch von dort die Sourcen herunter.
Entpacken und installieren
su root (anmelden als root
tar -xvzf subversion-NN.tar.gz
cd subversion-NN
sh ./autogen.sh
Das autogen.sh Script kontrolliert die Abhängigkeiten und gibt einen Hinweis aus, was noch installiert werden muss. Sind alle fehlenden Pakete installiert:
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-barkeley-db
Mit diesen Optionen wird Subversion mit Apache kompiliert und benutzt die Barkeley DB. Wird dies nicht gewünscht, dann lasst einfach diese Option weg. Es kann sein, wenn noch keine Barkeley DB installiert ist, dass diese noch nach installiert werden muss. Alle anderen Abhängigkeiten müssen auch nachinstalliert werden. (es werden die devel Paket benötigt)
Nach dem das ./configure erfolgreich durchgelaufen ist:
make
make install
Wenn das auch ohne Fehler durchläuft ist Subversion installiert und fertig für den Einsatz.
Subversion konfigurieren
Repository(s) anlegen
So nun hat mal 2 Möglichkeiten eine Repository (= darin speichert Subversion die Daten ab) anzulegen.
Ein Repository in dem alle Projekte drinn sind. Das sieht dann so aus:
/home/svn/project1
/home/svn/project1/daten
/home/svn/project2
/home/svn/project2/daten
/home/svn/project2/daten/noch/mehr/daten
Ist ja alles auch schön und gut aber bei der Arbeit damit wird dann "Problem" auftreten.
Für manche ist das vielleicht kein Problem aber ich finde das schon, dass es eines ist.
Also es geht um die Revisionsnummer. Wenn nun in project1 sich Daten ändern und sich die Revisionsnummer erhöht, erhöht sie sich aber auch gleich für project2 obwohl sie da nichts geändert hat ! Das finde ich schon ein wenig verwirrend wenn man bei Revisionsnummer 100 ist aber in dem Projekt vielleicht nur 30 commits gemacht hat. Aber in dem anderen Projekt schon 70.
Wem das egal ist, kann mit dem nächsten Schritt Ein Repository weiter machen.
Wem das nicht egal ist und lieber füjedes Projekt eine Revisionsnummer haben will, der macht bei Schritt Mehrere Repositories weiter.
Ein Repository
Erstellt einen neuen Ordner der nicht zu tief in der Verzeichnisstruktur liegt.
Am Besten unter /home
mkdir /home/svnroot
Darin darf am Besten nichts manuell geändert werden. Da ganz schnell das svn nicht mehr gehen kann und die Dateien kaputt sind. Dieses Verzeichnis sollte einem nicht root Benutzer gehören und einer Gruppe der die meisten Benutzer angehören. zB. hans:users
Nun muss das Verzeichnis noch als svn Wurzel Verzeichnis erstellt werden. Dies erledigen wir mit:
svnadmin create /home/svnroot
Nun müssen die Dateien oder das ganze Projekt an dem gearbeitet werden soll, in Subversion importiert werden.
Erstellt euch einen neuen Ordner (zB. /home/benutzername/entwicklung).
Darin einen Ordner mit dem selben Namen wie das Projekt heißen soll (zB. Homepage).
Unter diesem Namen wird dann später auf das Projekt, die Daten zugegriffen. Also wählt einen kurzen und griffigen Namen den man sich merken kann.
In diesen Ordner kommen nun alle Dateien die nun zu diesem Projekt gehören.
Das sollte dann folgendermaßen aussehen:
/home/name/entwicklung
....................../projektname
................................../Ordner
................................../Dateien
Nun muss das Projekt nur noch in Subversion rein.
Das geht mit folgendem Befehl:
svn import /home/name/entwicklung/ file:///home/svnroot
Damit wäre das Projekt (zB. Homepage) in Subversion drin. Damit wäre es getan und das Projekt steht von nun unter der Versionskontrolle von Subversion.
Um neue Projekte in Subversion zu Importieren einfach den Schritt wiederholen.
Mehrere Repositories
Erstellt einen neuen Ordner der nicht zu tief in der Verzeichnisstruktur liegt.
mkdir /home/svnroot
Darin darf am Besten nichts manuell geändert werden. Da ganz schnell das svn nicht mehr gehen kann und die Dateien kaputt sind. Dieses Verzeichnis sollte einem nicht root Benutzer gehören und einer Gruppe der die meisten Benutzer angehören. zB. hans:users
Da wir ja nun mehrere Repositories wollen erstellen wir nun darunter wieder Verzeichnisse die die einzelnen Repositories darstellen.
Also erstellen wir nun noch einen Ordner der wie das Project selber heißen kann.
mkdir /home/svnroot/Homepage
Nun muss das Verzeichnis noch als svn Wurzel Verzeichnis erstellt werden. Dies erledigen wir mit:
svnadmin create /home/svnroot/Homepage
Nun müssen die Dateien oder das ganze Projekt an dem gearbeitet werden soll, in Subversion importiert werden.
Das sollte dann folgendermaßen aussehen:
/home/name/entwicklung
....................../Ordner
....................../Dateien
Nun muss das Projekt nur noch in Subversion rein.
Das geht mit folgendem Befehl:
svn import /home/name/entwicklung/ file:///home/svnroot
Damit wären alle Dateien aus dem entwicklung Ordner in dem Projekt Homepage.
Wenn nun noch ein neues Projekt dazu kommt einfach wieder einen neuen Ordner unter /home/svnroot/ anlegen und daraus ein SVN-Wurzelverzeichnis machen. Danach wieder die Dateien einspielen und schon ist ein neues Projekt im SVN.
