Subject says it all :)
Seriously folks,
I've run into a serious problem with the C runtime libraries on my linux Redhat Enterprise Server 3 box, while attempting to get Oracle 8 installed on it.
I referenced some postings here to get some guidance about installing Oracle, and one of the steps recommended was to downgrade to version 2.2.3-5 of glibc. Unfortunately, while doing this, I got a 'script error' message from rpm, and immediately after the OS was pretty hosed; doing an 'ls' command resulted in Floating Point Exception. I don't remember the exact format of the rpm error message, but is that scenario familiar to anyone here ? Also, I cannot recall if I used the --oldpackage flag when installing glibc-2.2.3-5; does anyone know if not doing so would have serious repurcussions ?
The kernel cannot load at boot time either; when I reboot I get a load of messages that look like this:
/bin/sh: relocation error: /lib/i686/libc.so.6: symbol _dl_catch_error,
version GLIBC_PRIVATE not defined in file ld-linux.so.2 with link time reference
INIT; LD "x" respawning too fast: disabled for 5 minutes
I've used the repair disk to look at /lib, but I don't feel I know enough about the C runtime on RedHat to know what libraries to create links to. (Anyone know what a 'relocation error' is? My guess is it's something to do with loading libraries into the kernel. Also, what is "link time reference" ? My guess is that symbol is undefined in the ld-linux.so.2 lirary. Unfortunately, I don't have access to nm in repair mode.)
I'm thinking my best course of action now is to reinstall Linux and leave the parititions unchanged, but, does anyone know if and how I could fix this problem with a repair disk, and poking around /lib ?
Also, does rpm leave a log file anywhere ?
Thanks for any pointers on this.
Colm.
Just for reference, here is the How-to I used for installing glibc-2.3.2-5:
Work Around Procedure:
Since I was not able to find the glibc-2.3.2-5 RPMs available for download, I'm making the RPMs available on my website. These RPMs are copies of the glibc RPMs that came with the RH 9 CDs I bought in the store. I do not recommend to use any of the "compat" RPMs from older Red Hat distributions since RH 9 contains major changes.
Here is the procedure for installing glibc-2.3.2-5 temporarely on your RH 9 server:
Download the 2.3.2-5 glibc RPMs from here on my web site.
First make sure if these downloaded RPM's are not corrupt and if they were really built and signed by Red Hat. You never know if someone fiddled with these RPMs or replaced them. To ensure the integrity and origin of these Red Hat's RPMs, run the following commands:
$ su - root
# rpm --import /usr/share/rhn/RPM-GPG-KEY # add Red Hat's PGP public key to the RPM database
# rpm --checksig glibc-2.3.2-5.i686.rpm glibc-common-2.3.2-5.i386.rpm glibc-devel-2.3.2-5.i386.rpm
glibc-2.3.2-5.i686.rpm: (sha1) dsa sha1 md5 gpg OK
glibc-common-2.3.2-5.i386.rpm: (sha1) dsa sha1 md5 gpg OK
glibc-devel-2.3.2-5.i386.rpm: (sha1) dsa sha1 md5 gpg OK
#
Downgrade glibc, glibc-common, and glibc-devel:
# rpm -Uvh --oldpackage glibc-2.3.2-5.i686.rpm glibc-common-2.3.2-5.i386.rpm glibc-devel-2.3.2-5.i386.rpm
If you get the following error:
error: Failed dependencies:
glibc = 2.3.2-11.9 is needed by (installed) glibc-debug-2.3.2-11.9
glibc = 2.3.2-11.9 is needed by (installed) glibc-utils-2.3.2-11.9
glibc-devel = 2.3.2-11.9 is needed by (installed) glibc-debug-2.3.2-11.9
glibc-devel = 2.3.2-11.9 is needed by (installed) nptl-devel-2.3.2-11.9
then you can temporarily remove these RPMs (glibc-debug, glibc-utils, nptl-devel) from your system until you upgrade the glibc RPMs after your Oracle installation:
# rpm -e glibc-debug glibc-utils nptl-devel
Now try to run runInstaller again.
After Oracle has been installed, you can upgrade glibc, glibc-common, and glibc-devel again. For example:
# rpm -Uvh glibc-2.3.2-11.9.i686.rpm glibc-common-2.3.2-11.9.i386.rpm glibc-devel-2.3.2-11.9.i386.rpm
According to Red Hat, binary compatibility in Red Hat Linux is always guaranteed for binaries and shared libraries accross releases, but not for .o files nor .a files. However, compatibility is guaranteed for .o files and .a files. _within_ a realease. Since glibc-2.3.2-5 and glibc-2.3.2-11.9 are from the same release, compatibility should be guaranteed for .o files (Oracle's .o files which have been created during the Oracle installation) and .a files.
This means that Oracle should be fine when you upgrade glibc after the Oracle installation.