More adventures in desktop linux

Everything I do in linux seems to be an adventure. That couldn’t be more true for Oracle 10g. After fighting with the installer, monkeying around with the ALUI database scripts and editing the start-up script, I got the database to start, but it would only shut down immediately afterword. Drats!

This morning, I deleted every trace of Oracle 10g from my system and attempted an install of Oracle 9i. The adventure begins . . . .

First off, Oracle 9i requires JRE 1.3.1, which Sun is planning to retire very soon (as soon as Java 6 comes out). Damn, I remember working on Java 1.0 — am I getting old?

JRE 1.3.1 doesn’t install cleanly on Fedora Core 5. Then again, does anything? Java is closed-source — meaning you can’t build it yourself — so once again I was in a linux bind. When I tried to unpack the 1.3.1 JRE I downloaded from Sun, it gave me this:

tail: `-1' option is obsolete; use `-n 1' since this will be removed in the future
Unpacking...
tail: cannot open `+486' for reading: No such file or directory
Checksumming...
1 The download file appears to be corrupted. [etc]

I downloaded the file again a few times to make sure it really wasn’t corrupted. Of course it wasn’t.

Then I found this great blog post that explained exactly what was going wrong and offered an easy fix. Easy, that is, if you’re a developer. (I’m becoming more and more convinced every day that linux is not at all poised to take over the desktop unless the entire earth’s population goes out and gets a CS degree.)

Alas, the antiquated JRE was really to roll and now it was time to run the Oracle installer. Of course, that didn’t run either. Instead, it spat out JRE errors;

Error occurred during initialization of VM
Unable to load native library: /tmp/OraInstall2006-08-19_11-59-35AM/jre/lib/i386/libjava.so: symbol __libc_wait, version GLIBC_2.0 not defined in file libc.so.6 with link time reference

Nice. Back to Google.

The fix this time came (ironically) from IBM’s web site. No problem, just make a change to libcwait.c, recompile it as a shared object and then set the LD_PRELOAD variable. I’m sure my mom could do that, right?

Then of course I had the standard “this only works under X” problem, but I had already figured that one out. Here’s the error:

Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified
Exception in thread "main" java.lang.InternalError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.
at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
at sun.awt.X11GraphicsEnvironment.(X11GraphicsEnvironment.java:59)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:120)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:58)
at java.awt.Window.(Window.java:188)
at java.awt.Frame.(Frame.java:315)
at java.awt.Frame.(Frame.java:262)
at oracle.sysman.oii.oiic.OiicInstaller.main(OiicInstaller.java:593)

And the fix (as root):

%>xhost +
%>xterm &
%>su - oracle
%>/tmp/Disk1/runInstaller &

And finally, the Oracle 9i installer launched. Now of course it’s totally hung at 18% on “Linking Oracle Net Required Support Files” and it’s been stuck there since before I started writing this blog post.

Gotta love it.

3 Replies to “More adventures in desktop linux”

  1. Excellent solution !!! for install oracle 10g on RHEL4 Linux red hat Enterprise 4
    on VMWARE.

    Excelente solucion instalando oracle 10g sobre linux en una maquina virtual

    felicitaciones

  2. I found the solution to my Oracle 9i install issue. Apparently the install will hang indefinitely during the linking phase unless you do this.

    During the installation, before the linking phase, edit the contents of the “$ORACLE_HOME/bin/gennttab” file, amending the following entries:

    # Change this…
    LIB=`$ECHO ${TtoLIB} | $SED ‘s/ /\
    /g’ | $GREP “^${T}:” | $AWK -F: ‘{print $2}’`
    INI=`$ECHO ${TtoLIB} | $SED ‘s/ /\
    /g’ | $GREP “^${T}:” | $AWK -F: ‘{print $2}’`
    BAS=`$ECHO ${TtoLIB} | $SED ‘s/ /\
    /g’ | $GREP “^${T}:” | $AWK -F: ‘{print $2}’`

    # To this…
    LIB=`$ECHO ${TtoLIB} | $SED ‘s/ /n/g’ | $GREP “^${T}:” | $AWK -F: ‘{print $2}’`
    INI=`$ECHO ${TtoLIB} | $SED ‘s/ /n/g’ | $GREP “^${T}:” | $AWK -F: ‘{print $2}’`
    BAS=`$ECHO ${TtoLIB} | $SED ‘s/ /n/g’ | $GREP “^${T}:” | $AWK -F: ‘{print $2}’`

    Alternatively (e.g. if you don’t catch the installer before it gets to the linking phase), you can kill off make and grep (although you have to kill off about 20 grep processes, one by one).

    Oracle 9i is up and running. Deliverance!

Leave a Reply