Sunday, November 19, 2006

DB2 Client Installation unter (Gentoo) Linux (Deutsch)


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

Labels: , ,

1 Comments:

At September 18, 2007 at 8:23:00 AM PDT , Blogger Brian Dunbar said...

You wrote 'repository may not reside on an NFS drive"

Is this 'merely a good idea' or 'can't do this at all'?

While I certainly can mount the repository locally, our preferred method is to mount files like this via NFS.

Thanks in advance,

Brian Dunbar
brian.dunbar@plexus.com

 

Post a Comment

Subscribe to Post Comments [Atom]

<< Home