Schritt-fuer-Schritt-Installation von Subversion 1.x Server fuer Linux und Solaris 8/9/10 (Deutsch)
| Autor | Johannes Fahrenkrug |
| Reviewer | Joerg Kaminski |
| Kontakt | jfahrenkrug<N0 5PAM>.dot.gmail.dot.com |
| Version | 1.6.5 |
| Letzte Aenderung | 08/10/2005 |
Inhalt
| I | Vorwort/Anmerkungen |
| II | Schritt-fuer-Schritt Installation |
| III | Anhaenge |
| IV | Danksagungen |
I Vorwort/Anmerkungen
Du hast dich also entschieden (oder dir ist aufgetragen worden), Subversion zu installieren. Dann lehn dich zurueck, denn wir haben im Grunde die ganze Arbeit schon fuer dich gemacht. Mit der folgenden Anleitung wirst du viel Zeit sparen (und ggf. vor deinem Auftraggeber als Held der Arbeit glaenzen).
Um nicht alle Download-Pfade von Paketen/Installationsdateien bezueglich Solaris doppelt anfuehren zu muessen, haben wir uns dafuer entschieden, exemplarisch die Pfad-Bezeichnungen fuer Solaris 8 anzugeben. In den meisten Faellen muss in den angegebenen FTP-Pfaden und Package-Namen lediglich die 8 durch eine 9 ersetzt werden (besuche unsere Homepage unter www.dokus-in-hochgestochenem-deutsch.de).
Noch eine Anmerkung: In dieser Anleitung geht es darum, Subversion und alle Programme, die es benoetigt, selbst zu kompilieren und zu installieren. Wenn sich deine Hand bei dem Wort “kompilieren” in Richtung Kopf bewegt und eine kratzende Bewegung ausfuehrt, ist diese Anleitung vielleicht nicht unbedingt etwas fuer dich. Es gibt mittlerweile fuer fast jedes Betriebssystem und jede Linux-Distribution ein vorkompiliertes Paket, was dann wahrscheinlich einfacher zu installieren ist.
Die Punkte zur Konfiguration koennten jedoch trotzdem fuer dich interessant sein.
Wenn diese Anleitung dich weiterbringt, waeren wir dir sehr dankbar, wenn du deinem Arbeitgeber T-Shirts, Tassen und alles was man sonst noch so umsonst kriegen kann aus den Rippen leiern und uns eine Freude machen wuerdest.
So, jetzt aber viel Spass und Erfolg bei der Installation!
II Schritt-fuer-Schritt Installation
1. Lege dir irgendwo ein Verzeichnis an, in das du die ganzen zu kompilierenden Sourcen ablegen moechtest. Im Folgenden nenne ich dieses Verzeichnis /basedir
2. Gehe zu http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=260 und lade den neusten Source-Tarball von Subversion runter (im /basedir speichern).
3. Oeffne eine Konsole und werde zum Superuser:su -
4. Gehe ins basedir und entpacke die Subversion Sourcen:gunzip subversion-1.1.1.tar.gztar -xvf subversion-1.1.1.tar
5. Wechsle in das subversion-1.1.1 Unterverzeichnis und fuehre das autogen.sh Skript aus:cd subversion-1.1.1./autogen.sh
6. Das Skript ueberprueft, ob alle Abhaengigkeiten, die Subversion benoetigt, installiert sind. Wenn das Skript folgende Fehlermeldung ausspuckt:“Can’t locate object method “path” via package “Request” at
/usr/local/share/autoconf/Autom4te/C4che.pm line 69,
dann muss das Verzeichnis “autom4te.cache” im Unterverzeichnis “expat” von Subversion geloescht werden:rm -r /basedir/subversion-1.1.1/apr-util/xml/expat/autom4te.cache
Wenn das Skript sagt, dass eins der folgenden Dinge nicht (oder nicht in der benoetigten Version) installiert ist, dann folge bitte den naechsten Schritten und fuehre danach autogen.sh nochmal aus, um zu ueberpruefen, ob jetzt alles OK ist. Du kannst natuerlich auch die neuesten Sourcen runterladen und installieren, selbst wenn die Tools in der benoetigten Version vorliegen.
Wenn das Skript sagt, dass alles OK ist(autoheader Warnungen koennen ignoriert werden), dann mache mit Schritt 7 weiter, sonst:
a. autoconf/autoheader: Weiter im Anhang A.
b. libtool: Weiter im Anhang B.
c. m4: Weiter im Anhang C.
d. Python: Fuer Linux weiter im Anhang D. Fuer Solaris weiter im Anhang E.
e. Libxml2: Weiter im Anhang F.
f. neon lib: Muss nicht runtergeladen werden, da es Teil der Subversion Sourcen ist.
7. Gehe zu http://www.sleepycat.com/download/index.shtml und lade den neusten Source-Tarball der Berkeley-DB runter (egal, ob WITH oder WITHOUT strong cryptography, im /basedir speichern)
| Achtung: | In Subversion 1.1.1 wird BerkleyDB 4.3.x noch nicht unterstuetzt, also lieber die Version 4.2.52 verwenden. Wenn man Subversion 1.1.2 oder neuer verwendet, sollte man auch die neueste BerkeleyDB Version benutzen koennen. |
|---|---|
| Hinweis: | Ab der Version 1.1.0 ist Subversion nicht mehr auf die BerkeleyDB angewiesen, da es sein eigenes Datenbank-Backend (FSFS genannt) mitbringt. Damit habe ich aber noch keine Erfahrung, darum beschreibe ich im Folgenden nur die Installation mit BerkeleyDB. Sobald ich Subversion nochmal neu installiere, werde ich an dieser Stelle auf die Alternative mit FSFS beschreiben. |
8. Vergiss nicht, auch eventuelle Patches runterzuladen. 9. Entpacke die Berkeley DB Sourcen im basedir: 10. Kopiere die heruntergeladenen Patches in das db-4.2.52 Verzeichnis: 11. Wechsle in das db-4.2.52 Verzeichnis. 12. Patche die Sourcen: 13. Wechsle in das build_unix Verzeichnis 14. Fuehre das configure Skript aus: 15. Fuehre make aus: 16. Fuehre einen Zeitvertreib deiner Wahl durch. 17. Fuehre make install aus: 18. Aufraeumen…: 19. BerkeleyDB Libraries bekannt machen:
Alternativ zu Punkt b kann man auch unter einem Verzeichnis, dass sich bereits im LD_LIBRARY_PATH befindet, einen symbolischen Link auf die BerkeleyDB Library setzen, z.B.: |
20. Gehe zu http://httpd.apache.org/download.cgi und lade den neusten Source-Tarball vom Apache2 httpd Server runter (im /basedir speichern). Manchmal bricht der Download ueber http ab, dann folgendes machen:ftp ftp.uni-erlangen.de
cd /pub/mirrors/apache/httpd/
ls
Dann gucken, was der aktuellste Tarball ist und den dann runterladen, z.B.:binary
mget httpd-2.0.52.tar.gz
y
bye
21. Entpacke die Apache Sourcen im basedir:gunzip httpd-2.0.52.tar.gz
tar -xvf httpd-2.0.52.tar
22. Wechsle in das httpd-2.0.52 Verzeichnis
23. Fuehre buildconf aus:./buildconf
autoheader Warnungen koennen ignoriert werden.
24. Fuehre configure aus:./configure --enable-dav=shared --with-gdbm=no --enable-deflate=shared --enable-so --with-berkeley-db=/usr/local/BerkeleyDB.4.2 --with-dbm=db4
| Hinweis: | In bestimmten Faellen kann es noetig sein, bei --enable-dav und bei --enable-deflate das "=shared" wegzulassen. Oder es kann helfen, --enable-mod_deflate=shared statt --enable-deflate=shared zu benutzen. |
|---|---|
25. Wenn alles sauber durchgelaufen ist, make ausfuehren: 26. Kaffee kochen… 27. Fuehre make install aus: 28. Aufraeumen…: 29. Wechsle in das /basedir/subversion-1.1.1 Verzeichnis |
30. Fuehre configure aus:./configure --with-berkeley-db=/usr/local/BerkeleyDB.4.2 --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2
Wenn BerkeleyDB.4.2 in dessen Standard-Verzeichnis installiert worden ist, findet das configure Skript von Subversion ab der Version 1.0.2 die BerkeleyDB Libraries selbststaendig. Der Parameter “–with-berkeley-db” kann in diesem Fall weggelassen werden.
Darauf achten, dass keine Meldungen kommen, die besagen, dass nur ein Client gebaut werden kann. In dem Fall ist etwas schiefgelaufen.
| Hinweis: | Wenn es unter Solaris 8/9 Probleme gibt (die vielleicht auch erst beim make install auftreten), kann es helfen, config.nice statt des configure Skripts zu benutzen. Manchmal hilft auch das erneute Installieren von Apache2). |
|---|
31. Fuehre make aus:
| ACHTUNG: | Wenn bereits eine fruehere Version von Subversion installiert ist, musst du zuerst die alten Subversion und Neon Bibliotheken loeschen, bevor du make ausfuehrst. Das geht so:rm -f /usr/local/lib/libsvn* |
|---|
Jetzt kann make ausgefuehrt werden:make
32. Vielleicht drueckt der unter 26 gekochte - und inzwischen konsumierte - Kaffee jetzt schon ein wenig…
Nun ist die perfekte Gelegenheit, sich Erleichterung zu verschaffen!
33. Fuehre make install aus:make install
34. Aufraeumen:make clean
35. Wechsle in das Verzeichnis /basedir/subversion-1.1.1/tools/xslt
36. Kopiere den Inhalt des Verzeichnisses in das Apache2 htdocs Verzeichnis:cp * /usr/local/apache2/htdocs
37. svn group anlegen:
| a. Unter Linux: | groupadd -r svn | b. Unter Solaris: | groupadd svn |
|---|
38. svn user anlegen:
| a. Unter Linux: | useradd -r -g svn svn | b. Unter Solaris: | seradd -g svn svn |
|---|
39. Passwort des Users svn setzen:passwd svn
40. Repository anlegen (der unten verwendete Pfad kann durch einen beliebigen ersetzt werden. Ich werde diesen Pfad jedoch im weiteren Verlauf des Dokuments als Beispielpfad verwenden). Folgendes auch als root ausfuehren:cd /usr/local
mkdir svnrepos
chown svn:svn svnrepos
ACHTUNG: DAS REPOSITORY DARF NICHT AUF EINEM NFS LAUFWERK LIEGEN!
41. Als User svn das Repository anlegen:su svn
svnadmin create /usr/local/svnrepos
(Wenn er hier einige libs nicht findet, dann wie unter 19b beschrieben den LD_LIBRARY_PATH setzen und nochmal probieren)exit
42. Apache einrichten. Wechsle in das Apache2 conf Verzeichnis:cd /usr/local/apache2/conf
43. Oeffne die Datei httpd.conf in deinem Lieblings-Editor.
44. Stelle sicher, dass die Datei folgende Zeilen enthaelt:LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
Diese Anweisungen muessen in der conf Datei vor allen anderen Anweisungen, die mit Subversion zu tun haben, stehen!
45. Finde die Zeile, die mit Listen anfaengt und setzte den Wert auf den Port, auf dem Apache lauschen soll (z.B.):Listen 7770
46. Finde die Zeile, die mit #ServerName anfaengt und setze den Wert auf den Namen des Servers:ServerName subversion.deinedomain.de
47. Finde den Bereich, in dem die <Location> Direktiven definiert sind und fuege folgenden Text ein, wobei /rep ein frei waehlbarer, virtueller Pfad ist, unter dem man nachher das Repository erreichen kann und /usr/local/svnrepos wieder der absolute Pfad des Repository ist:<Location /rep>
DAV svn
SVNPath /usr/local/svnrepos
SVNIndexXSLT “/svnindex.xsl” # (optional, ums huebsch zu machen)
AuthType Basic
AuthName “Subversion repository”
AuthUserFile /etc/.svn-auth-file
Require valid-user
</Location>
Man kann damit spaeter ueber http://subversion.deinedomain.de:7770/rep das Repository erreichen.
Wenn man plant, unter einem Verzeichnis mehrere Repositories zu verwalten, |
| ACHTUNG: | Man muss darauf achten, dass der virtuelle Pfad, den man in Location angibt (hier: /rep) sich nicht mit anderen virtuellen Pfaden von Apache beisst. Wenn DocumentRoot z.B. /www ist und man hier im Location Tag /www/rep als virtuellen Subversion Pfad angibt, wird es Probleme geben, da Apache dann nicht weiss, welche Direktive denn bei einer Anfrage auf /www/rep ausgefuehrt werden soll: die von DocumentRoot oder die von Subversion? |
|---|
Die Auth-Direktiven sind zur Zugriffskontrolle notwendig. Der Dateiname in
der AuthUserFile Direktive ist frei waehlbar, du musst ihn dir jedoch
merken, da wir diese Datei nachher erzeugen und Userdaten in ihr ablegen.
48. Speichere und schliesse die Datei httpd.conf
49. Lege die Zugriffskontroll-Datei fuer die User an, die Subversion benutzen duerfen sollen:htpasswd -cm /etc/.svn-auth-file johannes
Wiederhole diesen Vorgang so oft, bis alle User angelegt sind (”johannes” natuerlich durch die entsprechenden Usernamen ersetzen)
| ACHTUNG: | Bei weiteren Benutzern nur -m und nicht mehr -cm als Option angeben, da sonst die Datei immer wieder ueberschrieben wird. |
|---|
50. Wechsle in das /usr/local/ Verzeichnis
51. Mache den User svn zum Besitzer aller Apache Dateien und Verzeichnisse:chown -R svn:svn apache2
52. Werde zum User svn:su svn
53. Wechsle in das /usr/local/apache2/bin Verzeichnis
54. Starte den Apache2 Server:./apachectl start
55. Oeffne einen Browser und gehe zu:http://subversion.deinedomain.de:7770/rep
Die Seite sollte folgendes anzeigen:Revision 0
/
Powered by Subversion 1.1.1
56. Der Subversion Server ist jetzt einsatzbereit! (Herzlichen Glueckwunsch)
57. Wenn du waehrend der Installation auf irgendwelche Probleme gestossen bist, die hier nicht erwaehnt werden, oder wenn du weisst, wie mans besser machen kann, dann schick mir eine Email an moremagic<N0 5PAM>.dot.gmail.dot.com Danke.
III Anhaenge
ANHANG A: autoconf Installation
A1. Gehe zu http://ftp.gnu.org/gnu/autoconf/ und lade den neusten Source-Tarball von GNU autoconf runter (im /basedir speichern).
A2. Entpacke die autoconf Sourcen im basedir:gunzip autoconf-2.59.tar.gz
tar -xvf autoconf-2.59.tar
A3. Wechsle in das autoconf-2.59 Verzeichnis
A4. Fuehre das configure Skript aus:./configure
A5. Fuehre make aus:make
A6. Fuehre make install aus:make install
A7. Aufraeumen…:make clean
A8. Fertig.
ANHANG B libtool Installation
B1. Gehe zu http://ftp.gnu.org/gnu/libtool/ und lade den neusten Source-Tarball von GNU libtool runter (im /basedir speichern).
B2. Entpacke die libtool Sourcen im basedir:gunzip libtool-1.5.6.tar.gz
tar -xvf libtool-1.5.6.tar
B3. Wechsle in das libtool-1.5.6 Verzeichnis
B4. Fuehre das configure Skript aus:./configure
B5. Fuehre make aus:make
B6. Fuehre make install aus:make install
B7. Aufraeumen…:make clean
B8. Fertig.
ANHANG C m4 Installation
C1. Gehe zu http://ftp.gnu.org/gnu/m4/ und lade den neusten Source-Tarball von GNU m4 runter (im /basedir speichern)…
C2. Entpacke die m4 Sourcen im basedir:gunzip m4-1.4.1.tar.gz
tar -xvf m4-1.4.1.tar
C3. Wechsle in das m4-1.4.1 Verzeichnis
C4. Fuehre das configure Skript aus:./configure
C5. Fuehre make aus:make
C6. Fuehre make install aus:make install
C7. Aufraeumen…:make clean
C8. Fertig.
ANHANG D Python Installation unter Linux
D1. Gehe zu http://python.org/ftp/python/2.3.3/ und lade den neusten Source-Tarball von Python runter (im /basedir speichern)
D2. Entpacke die Python Sourcen im basedir:bzip2 -d Python-2.3.3.tar.bz2
tar -xvf Python-2.3.3.tar
D3. Wechsle in das Python-2.3.3 Verzeichnis
D4. Fuehre das configure Skript aus:./configure
D5. Fuehre make aus:make
D6. Fuehre make install aus:make install
D7. Aufraeumen…:make clean
D8. Fertig.
ANHANG E Python Installation unter Solaris
E1. Lade folgende Datei runter: ftp://sunsite.informatik.rwth-aachen.de/pub/mirror/ftp.sunfreeware.com/sparc/8/python-2.3.3-sol8-sparc-local.gz (im /basedir speichern)
E2. Entpacke die Python Binaries fuer Solaris:gunzip python-2.3.3-sol8-sparc-local.gz
E3. Installiere das Package:pkgadd -d python-2.3.3-sol8-sparc-local
Bestaetige die Abfrage mit <ENTER> (Wenn dann ein M erscheint, druecke <STRG>+<ENTER>)
E4. Teste Python:python
Wenn hier eine Fehlermeldung kommt, dass er die libstdc++.so.5 nicht finden kann, dann mache bei Anhang G weiter.
E5. Fertig.
ANHANG F Libxml2 Installation
F1. Gehe zu ftp://ftp.gnome.org/pub/GNOME/sources/libxml2/2.6/ und lade den neusten Source-Tarball von libxml2 runter (im /basedir speichern)
F2. Entpacke die libxml2 Sourcen im basedir:gunzip libxml2-2.6.7.tar.gz
tar -xvf libxml2-2.6.7.tar
F3. Wechsle in das libxml2-2.6.7 Verzeichnis
F4. Fuehre das configure Skript aus:./configure
F5. Fuehre make aus:make
F6. Fuehre make install aus:make install
F7. Aufraeumen…:make clean
F8. Fertig.
ANHANG G libgcc Installation (Solaris)
G1. Gehe zu ftp://sunfreeware.nl.uu.net/pub/freeware/sparc/8/libgcc-3.3-sol8-sparc-local.gz und lade die Datei runter (im /basedir speichern)
G2. Entpacke das Package im basedir:gunzip libgcc-3.3-sol8-sparc-local.gz
G3. Installiere das Package:pkgadd -d libgcc-3.3-sol8-sparc-local
Bestaetige die Abfrage mit <ENTER> (Wenn dann ein M erscheint, druecke <STRG>+<ENTER>)
G4. Fertig.
IV Danksagungen
Vielen Dank an Vasudeva Martin fuer die hilfreichen Ergaenzungen in Punkt 47, die wir gern hinzugefuegt haben!
Vielen Dank an Ingo Brenckmann fuer den BerkeleyDB-Hinweis in Punkt 7.
Vielen Dank an Dominik Fijalkowski fuer den Configure-Hinweis in Punkt 24.
Vielen Dank an Sebastian fuer den mod_deflate Hinweis in Punkt 24.
Vielen Dank an Joschka Reuss fuer die Korrektur des tar Befehls in Punkt 9.
Labels: Howtos, Subversion, Tutorials


0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home