#!/bin/sh # # Oracle 8.1.x patch for glibc x.2.1.3.x # function oracle_home_error { echo "ORACLE_HOME not set, bailing out." exit 1; } function copy_success { echo "cp $1 $ORACLE_HOME/lib [ okay ] " } function copy_error { echo "cp $1 $ORACLE_HOME/lib [ Error ] " exit 1; } function glibc_wrong_version { echo "install glibc 2.1.3.x first. found $1" exit 1; } function libc_error { echo "could not create $ORACLE_HOME/lib/libc.so" exit 1; } function libc_okay { echo "created $ORACLE_HOME/lib/libc.so" cat $ORACLE_HOME/lib/libc.so } ####### main ######## echo "Oracle 8.i.x kernel 2.4.x glibc-compat patch for Redhat " echo "checking to see if glibc-compat 2.1.3.x installed.." VERSION=`rpm -qa | grep compat-glibc.*2.1.3.2.*` [ -z $VERSION ] && glibc_wrong_version $VERSION ; echo "$VERSION installed. " [ -z $ORACLE_HOME ] && oracle_home_error ; echo "Oracle Home = $ORACLE_HOME" echo "installed.... copying files" [ ! -s $ORACLE_HOME ] && oracle_home_error ; cp /usr/i386-glibc21-linux/lib/libc-2.1.3.so $ORACLE_HOME/lib [ $? -eq 0 ] && copy_success /usr/i386-glibc21-linux/lib/libc-2.1.3.so; [ $? -ne 0 ] && copy_error /usr/i386-glibc21-linux/lib/libc-2.1.3.so; cp /usr/i386-glibc21-linux/lib/libpthread.so $ORACLE_HOME/lib [ $? -eq 0 ] && copy_success /usr/i386-glibc21-linux/lib/libpthread.so; [ $? -ne 0 ] && copy_error /usr/i386-glibc21-linux/lib/libpthread.so; cp /usr/i386-glibc21-linux/lib/libdl.so $ORACLE_HOME/lib [ $? -eq 0 ] && copy_success /usr/i386-glibc21-linux/lib/libdl.so; [ $? -ne 0 ] && copy_error /usr/i386-glibc21-linux/lib/libdl.so; cp /usr/i386-glibc21-linux/lib/ld-linux.so.2 $ORACLE_HOME/lib [ $? -eq 0 ] && copy_success /usr/i386-glibc21-linux/lib/ld-linux.so.2; [ $? -ne 0 ] && copy_error /usr/i386-glibc21-linux/lib/ld-linux.so.2; echo "creating symbolic links " cd $ORACLE_HOME/lib/ ln -fs ld-linux.so.2 ld-2.1.3.so ln -fs libdl.so libdl.so.2 ln -fs libpthread.so libpthread.so.0 echo "creating $ORACLE_HOME/lib/libc.so" echo "GROUP ( $ORACLE_HOME/lib/libc-2.1.3.so $ORACLE_HOME/lib/ld-linux.so.2 /usr/i386-glibc21-linux/lib/libc_nonshared.a )" > $ORACLE_HOME/lib/libc.so [ ! -f $ORACLE_HOME/lib/libc.so ] && libc_error; [ -f $ORACLE_HOME/lib/libc.so ] && libc_okay; echo "relinking everything ... (this will take a while)" $ORACLE_HOME/bin/relink all echo -e "\n\n\npatch complete.\a"