I blog somewhere else now
Just a quick note: I don't use this blog anymore. I blog at http://blog.springenwerk.com now. Quite regularly even.
-- Johannes
Just a quick note: I don't use this blog anymore. I blog at http://blog.springenwerk.com now. Quite regularly even.
| Author | Johannes Fahrenkrug |
| Reviewer | Joerg Kaminski |
| Contact | jfahrenkrug<N0 5PAM>.dot.gmail.dot.com |
| Version | 1.7 |
| Last Update | 10/27/2005 |
| I | Introduction/Notes |
| II | Step by Step Installation |
| III | Appendices |
| IV | Acknowledgments |
So you decided (or you have been told) to install Subversion. Then all you have to do now is lean back and enjoy the ride, because we did all the work for you already. This document will save you a hack of a lot of time (and it might even make you the employee of the month).
We didn’t feel like typing two different download URLs for all the Solaris 8 and 9 packages. Hence we only used the Solaris 8 paths. In most cases you only have to replace the 8 with a 9 in the FTP paths and package names.
Please note that this guide is about compiling and installing Subversion and all the programs that it depends on from source. In case your hand moves in the direction of your head and makes a scratching motion when you hear the word “compile”, this guide might not be for you. You can get pre-compiled packages for just about any OS by now. That is definitely the easier way to go.
The section about configuring and setting up the Subversion server might be interesting for you even if you don’t compile everything from source, though.
In case this document actually helps you, we’d be very grateful if you would nag your employer about some t-shirts, mugs and other free stuff for us. (Whoever is reading this and actually is considering sending us something: You’re the first one, man! More power to you!)
Anyway, have fun (and success) installing Subversion!
PS: I guess I have to say this: I am not responsible for any damage that might be caused by following this guide!
1. Create a directory for all the source files that you’ll have to download and compile in the next steps. I’ll call this directory /basedir
2. Go to http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=260 and download the newest Subversion source tarball (save it in /basedir).
3. Open a shell and become the superuser:su -
4. Go to the basedir and unpack the Subversion source files:gunzip subversion-1.2.3.tar.gztar -xvf subversion-1.2.3.tar
5. Change into the subversion-1.2.3 subdirectory and run the autogen.sh script:cd subversion-1.2.3./autogen.sh
6. The script checks if all of Subversion’s dependencies are installed. When the script coughs up this error message:“Can’t locate object method “path” via package “Request” at
/usr/local/share/autoconf/Autom4te/C4che.pm line 69, <GEN1> chunk 111.”
the directory “autom4te.cache” in the subdirectory “expat” of Subversion has to be deleted:rm -r /basedir/subversion-1.1.1/apr-util/xml/expat/autom4te.cache
When the script says that one of the following things is not installed or not recent enough, then please follow the next steps and run autogen.sh again to check if everything’s OK now. Of course you can also download and install the newest versions of these tools and libraries, even if the installed versions are sufficient.
In case the script says that everything’s fine (autoheader warnings can be ignored) continue with step 7. If the script complains:
a. autoconf/autoheader: Continue with Appendix A.
b. libtool: Continue with Appendix B.
c. m4: Continue with Appendix C.
d. Python: For Linux continue with Appendix D. For Solaris continue with Appendix E.
e. Libxml2: Continue with Appendix F.
f. neon lib: Doesn’t have to be downloaded because it comes with the Subversion source files.
7. Go to http://www.sleepycat.com/download/index.shtml
and download the newest source tarball of Berkeley DB (either with or without strong cryptography, it doesn’t matter). Save it in /basedir.
| Note: | Starting at version 1.1.0 Subversion doesn’t depend on Berkeley DB anymore because it comes with its own database backend called FSFS. I don’t have any experience with FSFS yet. Hence I describe the installation using Berkeley DB. As soon as I install Subversion again, I will use FSFS and add the description here. |
|---|
8. Don’t forget to download available patches (I don’t think there are any for the current version). 9. Extract the Berkeley DB source files in the basedir: 10. Copy patches - if there are any - that you have downloaded into the db-4.3.29 directory: 11. Change into the db-4.3.29 directory. 12. Patch the source files (if patches are available): 13. Change into the build_unix directory 14. Run the configure script: 15. Run make: 16. Pass the time with an activity of your choice (flossing, maybe). 17. Run make install: 18. Clean up…: 19. Make the Berkeley DB libraries known:
As an alternative to point b you can also add a symbolic link to a directory that already is in the LD_LIBRARY_PATH, for example: |
20. Go to http://httpd.apache.org/download.cgi
and download the newest source tarball of the Apache2 httpd server. Save it in /basedir. Sometimes
the download fails if you use http. In that case, do this:ftp ftp.uni-erlangen.de
cd /pub/mirrors/apache/httpd/
ls
Then find the newest tarball and download it, i.e.:binary
mget httpd-2.0.55.tar.gz
y
bye
21. Extract the Apache source files in basedir:gunzip httpd-2.0.55.tar.gz
tar -xvf httpd-2.0.55.tar
22. Change into the httpd-2.0.55 directory
23. Run buildconf:./buildconf
autoheader warnings can be ignored.
24. Run configure:./configure --enable-dav=shared --with-gdbm=no --enable-deflate=shared --enable-so --with-berkeley-db=/usr/local/BerkeleyDB.4.3 --with-dbm=db4
| Hint: | In certain cases it might be necessary to use --enable-dav and--enable-deflate without "=shared". Or it can help to use --enable-mod_deflate=shared instead of --enable-deflate=shared. |
|---|---|
25. When configure finished without errors, run make: 26. Make coffee… 27. Run make install: 28. Clean up…: 29. Change into the /basedir/subversion-1.2.3 directory |
30. Run configure:./configure --with-berkeley-db=/usr/local/BerkeleyDB.4.3 --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2
In case BerkeleyDB.4.3 has been installed in it’s default directory, the configure script of Subversion version 1.0.2 and higher finds the BerkeleyDB libraries automatically. In that case, you can run configure without "--with-berkeley-db".
Watch out for any messages that say that only a Subversion client can be built. In that case, something went wrong.
| Hint: | If you encounter any problems under Solaris 8/9/10 (which might only occur as late as at the “make install” step), it can be helpful to use config.nice instead of the configure script. Sometimes it also helps to reinstall Apache2. |
|---|
31. Run make:
| ATTENTION: | In case an earlier version of Subversion is already installed, you have to delete those Subversion and Neon libraries before you run make. This is what you have to do:rm -f /usr/local/lib/libsvn* |
|---|
Now you can run make:make
32. Maybe the coffee you made in step 26 causes a certain pressure inside of you….
Now would be the perfect opportunity to get some relief!
33. Run make install:make install
34. Clean up:make clean
35. Change into the directory /basedir/subversion-1.2.3/tools/xslt
36. Copy the contents of the directory into the Apache2 htdocs directory:cp * /usr/local/apache2/htdocs
37. Create the group “svn”:
| a. Under Linux: | groupadd -r svn | b. Under Solaris: | groupadd svn |
|---|
38. Create the user “svn”:
| a. Under Linux: | useradd -r -g svn svn | b. Under Solaris: | useradd -g svn svn |
|---|
39. Set the password for the user “svn”:passwd svn
40. Create the repository (you can change the path below to anything you like, but I will keep using it as an example path in this document). Execute this as root:cd /usr/local
mkdir svnrepos
chown svn:svn svnrepos
ATTENTION: THE REPOSITORY MAY NOT RESIDE ON AN NFS DRIVE!
41. Create the repository as the user “svn”:su svn
svnadmin create /usr/local/svnrepos
(If you get an error at this point saying thay some libs could not be found, set the LD_LIBRARY_PATH as described in section 19b and try again)exit
42. Set up Apache. Change into the Apache2 conf directory:cd /usr/local/apache2/conf
43. Fire up your favorite editor and open the httpd.conf file.
44. Make sure the file contains the following lines:LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
There lines have to appear before any other statements that have to do with Subversion!
45. Find the line that starts with “Listen” and set its value to the port that Apache should listen on, i.e.:Listen 7770
46. Finde the line that starts with “#ServerName” an set it to the name of your server:ServerName subversion.yourdomain.com
47. Find the area that contains the <Location> directives and add the following text to it (”/rep” being a virtual path of your choice under which the repository will be served and “/usr/local/svnrepos” being the absolute path of the repository):<Location /rep>
DAV svn
SVNPath /usr/local/svnrepos
SVNIndexXSLT “/svnindex.xsl” # (optional, to make it pretty)
AuthType Basic
AuthName “Subversion repository”
AuthUserFile /etc/.svn-auth-file
Require valid-user
</Location>
Your repository can be found at http://subversion.yourdomain.com:7770/rep later.
If you plan to host more than one repository under one directory, you can use |
| ATTENTION: | You have to make sure that the virtual path (in this case /rep) doesn’t interfere with other virtual paths of Apache. If - for example - your DocumentRoot is /www and you set /www/rep as the virtual Subversion path in the Location tag, you’ll have a problem: Apache wouldn’t be able to tell which directive to execute when /www/rep in requested: the directive of DocumentRoot or the one of Subversion? |
|---|
The Auth directives are important for access control. You can choose the path and filename for the AuthUserFile directive. You have to remember that path and the filename though because we have to create that file later, for the usernames and passwords.
48. Save and close the httpd.conf file.
49. Create the access control file for the users that should be allowed to use Subversion:htpasswd -cm /etc/.svn-auth-file johannes
Repeat this with the option -m instead of -cm until all the users are created (replace “johannes” with the appropriate usernames, of course)
| ATTENTION: | It is important to use -m instead of -cm for all following users. Otherwise you’d overwrite the file each time. |
|---|
50. Change into the /usr/local/ directory
51. Make the user “svn” the owner of all Apache files and directories:chown -R svn:svn apache2
52. Become the user svn:su svn
53. Change into the /usr/local/apache2/bin directory
54. Fire up the Apache2 server:./apachectl start
55. Open a web browser and go tohttp://subversion.yourdomain.com:7770/rep
The page should display something like this:Revision 0
/
Powered by Subversion 1.2.3
56. The Subversion server is now set up and ready to be used (congratulations)!
57. If you encountered any problems or if you know how to do it better, drop me a line at moremagic<N0 5PAM>.dot.gmail.dot.com Thanks.
A1. Go to http://ftp.gnu.org/gnu/autoconf/ and download the newest source tarball of GNU autoconf (save it in /basedir).
A2. Extract the autoconf source files in the basedir:gunzip autoconf-2.59.tar.gz
tar -xvf autoconf-2.59.tar
A3. Change into the autoconf-2.59 directory
A4. Run the configure script:./configure
A5. Run make:make
A6. Run make install:make install
A7. Clean up…:make clean
A8. Done.
B1. Go to http://ftp.gnu.org/gnu/libtool/ and download the newest source tarball of GNU libtool (save it in /basedir).
B2. Extract the libtool source files in the basedir:gunzip libtool-1.5.8.tar.gz
tar -xvf libtool-1.5.8.tar
B3. Change into the libtool-1.5.8 directory
B4. Run the configure script:./configure
B5. Run make:make
B6. Run make install:make install
B7. Clean up…:make clean
B8. Done.
C1. Go to http://ftp.gnu.org/gnu/m4/and download the newest source tarball of GNU m4 (save it in /basedir)…
C2. Extract the m4 source files in the basedir:gunzip m4-1.4.4.tar.gz
tar -xvf m4-1.4.4.tar
C3. Change into the m4-1.4.4 directory
C4. Run the configure script:./configure
C5. Run make:make
C6. Run make install:make install
C7. Clean up…:make clean
C8. Done.
D1. Gehe zu http://python.org/ftp/python/2.4.2/ and download the newest source tarball of Python (save it in /basedir)
D2. Extract the Python source files in the basedir:bzip2 -d Python-2.4.2.tar.bz2
tar -xvf Python-2.4.2.tar
D3. Change into the Python-2.4.2 directory
D4. Run the configure script:./configure
D5. Run make:make
D6. Run make install:make install
D7. Clean up…:make clean
D8. Done.
E1. Download this file: ftp://sunsite.informatik.rwth-aachen.de/pub/mirror/ftp.sunfreeware.com/sparc/8/python-2.4.2-sol8-sparc-local.gz (save it in /basedir)
E2. Extract the Python binaries for Solaris:gunzip python-2.4.2-sol8-sparc-local.gz
E3. Install the package:pkgadd -d python-2.4.2-sol8-sparc-local
Confirm the question with <ENTER> (When an M appears, press <CTRL>+<ENTER>)
E4. Test Python:python
If you get an error message at this point that libstdc++.so.5 can’t be found, continue with APPENDIX G
E5. Done.
F1. Go to ftp://ftp.gnome.org/pub/GNOME/sources/libxml2/2.6/ and download the newest source tarball of libxml2 (save it in /basedir)
F2. Extract the libxml2 source files in the basedir:gunzip libxml2-2.6.22.tar.gz
tar -xvf libxml2-2.6.22.tar
F3. Change into the libxml2-2.6.22 directory
F4. Run the configure script:./configure
F5. Run make:make
F6. Run make install:make install
F7. Clean up…:make clean
F8. Done.
G1. Download this file: ftp://sunfreeware.nl.uu.net/pub/freeware/sparc/8/libgcc-3.4.1-sol8-sparc-local.gz (save it in /basedir)
G2. Extract the package in the basedir:gunzip libgcc-3.4.1-sol8-sparc-local.gz
G3. Install the package:pkgadd -d libgcc-3.4.1-sol8-sparc-local
Confirm the question with <ENTER> (When an M appears, press <CTRL>+<ENTER>)
G4. Done.
Thanks to Vasudeva Martin for the helpful additions to step 47.
Thanks to Ingo Brenckmann for the BerkeleyDB note at step 7.
Thanks to Dominik Fijalkowski for the configure note at step 24.
Thanks to Sebastian for the mod_deflate note at step 24.
Thanks to Joschka Reuss for the correction of the tar command at step 9.
Labels: Howtos, Subversion, Tutorials
| Autor | Johannes Fahrenkrug |
| Reviewer | Joerg Kaminski |
| Kontakt | jfahrenkrug<N0 5PAM>.dot.gmail.dot.com |
| Version | 1.6.5 |
| Letzte Aenderung | 08/10/2005 |
| I | Vorwort/Anmerkungen |
| II | Schritt-fuer-Schritt Installation |
| III | Anhaenge |
| IV | Danksagungen |
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!
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.
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.
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.
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.
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.
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.
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.
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.
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
Autoren..........: Joerg Kaminski, Johannes Fahrenkrug
Kontakt..........: jfahrenkrug.dot.gmail.dot.com
Version……….: 1.2.5
Letzte Aenderung.: 1. November 2005
Inhalt
******
I Vorwort/Anmerkungen
II Schritt-fuer-Schritt Installation
III Anhaenge
IV Danksagungen
I Vorwort/Anmerkungen
———————
Es ist ein Krampf, einen DB2 Client (IBM DB/2) unter Gentoo zu installieren,
wenn man nicht weiss, was man beachten muss. So ging es uns. WENN man aber
weiss, was man beachten muss, ist es eigentlich ganz einfach. Hier also unsere
DB2 Client Installations-Anleitung fuer Gentoo Linux von NULL bis zum ersten
SELECT.
Wir haben in dieser Anleitung die Pfadangaben verwendet, die sich auf unseren
DB2-Client v. 8.1 beziehen. Solltest du aktuellere Versionen installieren
wollen, koennen die Pfade moeglicherweise anders lauten, aber die Installation
sollte so oder so aehnlich laufen.![]()
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. Du benoetigst fuer DB2 den Paketmanager RPM (nein, du kommst nicht
drumherum). Solltest du RPM bereits installiert haben, kannst du direkt
zu Schritt 2 gehen. Ansonsten installiere RPM bitte laut den Anweisungen
in Anhang A.
Alle folgenden Schritte musst du als root ausfuehren.
2. Zunaechst musst du die DB2 Installations Dateien von der CD in ein
Verzeichnis auf deinem Rechner kopieren.
Alternativ kannst du auch den neueren Client von der Quelle aus Anhang B
herunterladen. Die folgenden Schritte sollten fuer beide Varianten
funktionieren.
Wir gehen also davon aus, dass du weisst, wie man eine CD mountet. Falls
nicht, kannst du die Installationsanleitung an dieser Stelle verlassen.![]()
3. Kopiere das Verzeichnis /db2/linux der CD nach /root/db2install
mkdir /root/db2install
cp -R /mnt/cdrom/db2/linux /root/db2install
4. Oeffne die Datei db2_install im Verzeichnis linux mit deinem
Lieblingseditor und finde folgende Zeile:
rpm -ivh ${INSTDEV?}/${pkg?}${RPMEXTN?} 2>&1 \
In diese musst du das flag –nodeps eintragen, damit RPM bei der
Installation von DB2 nicht wegen unerfuellten Abhaengigkeiten jammert (es
erwartet naemlich fuer DB2 eine glibc in der Version 2.2 und merkt nicht,
wenn bereits eine aktuellere installiert ist). Die Zeile sollte nun so
aussehen:
rpm –nodeps -ivh ${INSTDEV?}/${pkg?}${RPMEXTN?} 2>&1 \
5. Nun kannst du das Script ausfuehren:
/root/db2install/linux/db2_install
Sobald die Installation erfolgreich durchgelaufen ist, ist DB2 unter
/opt/IBM/db2/V8.1/ installiert.
Anmerkung: auf die Erfolgsmeldung am Ende des Installationsprozesses kann
man sich leider nicht verlassen. Du solltest in jedem Fall
pruefen, ob Fehlermeldungen ausgegeben wurden!
6. RPM hat die Message-Dateien NICHT automatisch mitinstalliert. Diese sind
jedoch zwingend erforderlich und muessen nun von dir zu Fuss
nachinstalliert werden. Verwende hierzu rpm2targz, um das RPM umzuwandeln:
rpm2targz IBM_db2msen81-8.1.0-0.i386.rpm
7. Entpacke nun die Message-Dateien:
gunzip IBM_db2msen81-8.1.0-0.i386.tar.gz
tar -xvf IBM_db2msen81-8.1.0-0.i386.tar /
Der Slash sollte nicht vergessen werden.–^
8. Jetzt sollte das bin-Verzeichnis von DB2 noch in die PATH Variable
aufgenommen werden. Haenge einfach folgende Zeile ans Ende der /etc/profile
an:
export PATH=”${PATH}:/opt/IBM/db2/V8.1/bin”
9. Fuehre anschliessend mal wieder
source /etc/profile
aus.
10. Wenn du jetzt mal
which db2
ausfuehrst, solltest du folgende Ausgabe sehen:
/opt/IBM/db2/V8.1/bin/db2
11. Als naechstes musst du eine Usergruppe und einen User anlegen:
groupadd db2iadm1
useradd -m db2inst1 -g db2iadm1
WICHTIG: Es MUSS eine Gruppe angelegt werden! Die primaere Gruppe des
Benutzers db2inst1 darf nicht users sein.
12. Bevor du die Instanz anlegen kannst, musst du noch ein paar Skripte in
/opt/IBM/db2/V8.1/instance anpassen. Und zwar kann die neuere tail Version
von Gentoo nicht mit der tail Syntax umgehen, die in den Skripten im
instance Verzeichnis benutzt wird.
Finde zunaechst heraus, in welchen Skripten tail verwendet wird. Begib
dich in das /opt/IBM/db2/V8.1/instance Verzeichnis und fuehre folgenden
Befehl aus:
find . | xargs grep -n tail
Editiere jetzt die gefundenen Dateien und fuege in jeden tail Aufruf ein
“-n” ein. Du aenderst also zum Beispiel ein
tail -1
in ein
tail -n -1
13. Nun musst du eine sogenannte DB2 Instanz einrichten. Was genau das ist?
Keine Ahnung, aber es haengt mit dem User zusammen, den du gerade angelegt
hast. Das Wort Instanz ist sehr klug und aussagekraeftig gewaehlt.![]()
Wechsle in das Verzeichnis /opt/IBM/db2/V8.1/instance und fuehre folgenden
Befehl aus:
./db2icrt -a CLIENT -s client db2inst1
14. Im Verzeichnis /opt/IBM/db2/V8.1/cfg findest du die Datei db2profile. Diese
muss nun angepasst werden, damit DB2 weiss, welche Instanz verwendet werden
soll. Finde die Umgebungsvariablen DB2INSTANCE und INSTHOME. Bearbeite sie,
so dass sie folgendermassen aussehen:
DB2INSTANCE=db2inst1
export DB2INSTANCE
INSTHOME=/home/db2inst1
15. Jetzt musst du der Maschine noch beibringen, unter welchem Port der DB2
Server laeuft, mit dem du dich verbinden willst. Das koennen natuerlich von
Fall zu Fall unterschiedliche Ports sein, aber bei uns ist es der Port
3700. Dazu musst du die Datei /etc/services bearbeiten und an passender
Stelle folgende Zeilen einfuegen (nur ein Beispiel, es haengt natuerlich
von deiner Server-Konfiguration ab):
ibm-db2 523/tcp
ibm-db2 523/udp
und:
db2inst1c 3700/tcp
db2inst1i 3701/tcp
16. Als naechstes musst du zu dem User db2inst1 werden:
su - db2inst1
17. Einen neuen node kannst du zum Beispiel so hinzufuegen:
db2 catalog tcpip node NODENAME remote SERVERNAME server db2inst1c
Und eine neue Datenbank kannst du so katalogisieren:
db2 catalog db DATENBANKNAME at node NODENAME
Wenn alles geklappt hat und du
db2 connect to DATENBANKNAME user USERNAME
und zuguterletzt
db2 SELECT * FROM IRGENDEINETABELLE
ausfuehrst, solltest du den Tabelleninhalt sehen koennen.
18. Dein DB2 Client ist jetzt einsatzbereit. Herzlichen Glueckwunsch!
19. Es gibt noch einen praktischen Tipp:
Wenn du allen Usern auf der Maschine ermoeglichen moechtest, DB2 zu benutzen,
dann musst du folgendes tun:
Oeffne die /etc/profile und haenge folgendes ans Ende:
# The following three lines have been added by UDB DB2.
if [ -f /home/db2inst1/sqllib/db2profile ]; then
. /home/db2inst1/sqllib/db2profile
fi
Wenn die Verzeichnis-Struktur bei dir anders aussieht musst du das natuerlich
anpassen.
Anschliessend nochmal
source /etc/profile
ausfuehren. Dann sollten alle User DB2 nutzen koennen.
20. 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 uns bitte eine Email. Danke.
III Anhaenge
————
ANHANG A
RPM Installation
A1. Um RPM auf deinem Gentoo installieren zu koennen, benoetigst du ein Java
SDK in einer Version KLEINER als 1.5.x (ab 1.5.x ist “enum” naemlich ein
Keyword)! Wir haben fuer die Installation das Blackdown JDK in der
Version 1.4.2 verwendet. Wenn du bereits ein SUN JDK 1.5.x installiert
haben solltest, musst du temporaer umschwenken. Wenn nicht, dann sind
fuer dich lediglich die Schritte A5, A6 und A9 in diesem Anhang
interessant.
A2. In der Datei /etc/profile musst du folgende Zeilen einfuegen:
export JDK_HOME=’/opt/blackdown-jdk-1.4.2.01′
export JAVAC=’/opt/blackdown-jdk-1.4.2.01/bin/javac’
export JAVA_HOME=’/opt/blackdown-jdk-1.4.2.01′
export PATH=”/opt/blackdown-jdk-1.4.2.01/bin:/opt/blackdown-jdk-1.4.2.01/jre/bin:${PATH}”
A3. Fuehre nun
source /etc/profile
als root aus.
A4. Diese Informationen reichen Gentoo aber leider noch nicht aus. An einigen
Stellen der RPM-Installation wird es trotzdem das SUN JDK verwenden, um
Codeteile zu uebersetzen. Aus diesem Grund musst du einen haesslichen
Hack einsetzen.
Sichere erst einmal deine original javac binary und lege dann einen
symbolischen Link auf den blackdown compiler an:
mv /opt/sun-jdk-1.5.0.01/bin/javac /opt/sun-jdk-1.5.0.01/bin/javac_ORIGINAL
ln -s /opt/blackdown-jdk-1.4.2.01/bin/javac /opt/sun-jdk-1.5.0.01/bin/javac
A5. Und nun darf es mit der RPM-Installation losgehen:
emerge rpm
A6. Du kannst jetzt wahlweise deine Lieblings-Ren&Stimpy-Folge schauen oder
auch Kaffee kochen gehen. Aber denk dran, ihn abzuholen, bevor du mit dem
Anhang durch bist, weil du spaeter nicht viel Wartezeit tot zu schlagen
hast.
A7. Wenn rpm sauber installiert wurde, musst du die Zeilen in /etc/profile
wieder entfernen (oder sie auskommentieren, was dir besser gefaellt)
und
source /etc/profile
erneut ausfuehren.
A8. Anschliessend musst du den zuvor erzeugten Link wieder entfernen:
rm /opt/sun-jdk-1.5.0.01/bin/javac
und das Original binary wieder herstellen:
mv /opt/sun-jdk-1.5.0.01/bin/javac_ORIGINAL /opt/sun-jdk-1.5.0.01/bin/javac
A9. Nun ist RPM vorhanden, (dein Java ggf. wieder auf dem gewohnten Stand)
und du bist bereit die Installation von DB2 (schnall dich an).
ANHANG B
Development Tools Installation
B1. Lade dir von
http://www-306.ibm.com/software/data/db2/udb/support/downloadv8.html#LINUX32
oder von
http://www-306.ibm.com/software/data/db2/udb/support/downloadv8.html#LINUX26Kernel32intel
den Fixpack-Client fuer Application Development (App. Dev.) runter.
B2. Entpacke das Paket mit
tar -xvf FP9_MI00117_ADCL.tar
B3. Wechsel in das erstellte Verzeichnis adcl/db2/linux26
B4. Lege dort ein neues Unterverzeichnis an, z.B. dev
B5. Kopiere alle Dateien, die fuers Application Development noetig sind in
das neue Verzeichnis:
cp *ad* dev
B6. Wandle die RPMs in TarGz-Dateien um:
rpm2targz *.rpm
B7. Packe die Archive aus:
find . -name ‘*.tar.gz’ -exec tar -xvzf {} \;
B8. Die Libraries und Include-Dateien kopieren:
cp -R opt /
B9. Das wars. Die Includes liegen in
/opt/IBM/db2/V8.1/include
und die Libraries liegen in
/opt/IBM/db2/V8.1/lib
IV Danksagungen
—————-
Vielen Dank an folgende Howtos:
http://forums.gentoo.org/viewtopic-t-241093-highlight-db2.html
von darktemplaaa.
http://www-128.ibm.com/developerworks/db2/library/techarticle/dm-0409cline2/readme_linux.txt
von IBM.
http://www.schau.com/pages/db2.html
von Brian.
Vielen Dank an folgende Personen fuer Verbesserungsvorschlaege:
Meinen Kollegen Dirk Oetken fuer die find Syntax unter Punkt B7