You’ve tried installing IBM DB2 V8.1 on the current release of an RPM-based but commercially unsupported operating system. Also, maybe you’ve installed DB2 before on older machines and have a nice response file set up with sane default values.
Something has died during the install, but you can’t tell whether it’s causing the following error:
$ db2cc
Exception in thread "main" java.lang.UnsatisfiedLinkError: initIDs
at java.awt.Component.<clinit>(Component.java:563)
at CC.<init>(Unknown Source)
at CC.main(Unknown Source)
DB2JAVIT : RC = 1
</init></clinit>
What do you do?
Make sure that libXp
is installed.
<= RHEL 4 & older versions of Fedora Core (at least on Core 3) bundle libXp
in xorg-libs
, however this package has disappeared in newer versions of Fedora. Fortunately, a yum provides libXp.so.6
reveals that it now has its own package, so a yum install libXp
will fix your problems.
Now db2cc
and the other various DB2 admin-y bits should work, but what about the other bits that broke?
You’ll need to fix up some syntactical bits in /opt/IBM/db2/V8.1/instance/db2iutil
- specifically, the syntax of tail
has changed.
Open up db2iutil
in an editor and type:
%s/tail +2/tail -n +2/g
This will replace all cases of tail +2
, with tail -n +2
. Supposedly just +2
is no longer valid syntax. (Bizarro! Is this some sort of odd regression?)
Now, for the cleanup bits. :-)
It’s worth dropping the DB2 instance just in case things have broke in mystical ways known only to IBM.
If the instance has already been created, drop it by running:
/opt/IBM/db2/V8.1/instance/db2idrop db2inst
And now recreate the DB2 instance:
/opt/IBM/db2/V8.1/instance/db2icrt -a SERVER -d -s wse -u db2fenc -p db2c_db2inst db2inst
The DB2 admin user probably needs a re-jigging too.
Delete the temporary directory created during the installation:
# rmdir /home/db2das/das
Recreate the DB2 administration user in DB2:
/opt/IBM/db2/V8.1/instance/dascrt -u dasusr -d
Of course, modify the paths as needed. Your Unix + DB2 usernames and DB2 instance names are probably different, so in my examples:
- DB2 admin user =
dasusr
- DB2 instance user =
db2inst
- DB2 instance name =
db2inst
- Name of server =
SERVER