installing Oracle Instantclient on Linux without setting environment variables? installing Oracle Instantclient on Linux without setting environment variables? oracle oracle

installing Oracle Instantclient on Linux without setting environment variables?


Oracle's instantclient installation instructions specify that the user set LD_LIBRARY_PATH. This is very troublesome to manage for multiple users.

To use the instantclient without setting any environment variables:

Download the instantclient distribution from oracle.com. For doing non-java software development, you will need (assuming Oracle 10.2):

instantclient-basic-linux-x86_64-10.2.0.4.0.zipinstantclient-sdk-linux-x86_64-10.2.0.4.0.zipinstantclient-sqlplus-linux-x86_64-10.2.0.4.0.zip

Unzip the three files. This will give you a directory

instantclient_10_2/

Copy the files to /usr, which is one of the default places the dynamic loader searches.

sudo cp instantclient_10_2/sdk/include/*.h /usr/includesudo cp instantclient_10_2/sqlplus         /usr/binsudo cp instantclient_10_2/*.so*           /usr/lib

If you use tnsnames.ora, copy it to /etc, which is the default global place the oracle runtime searches.

sudo cp tnsnames.ora /etc

Test with

/usr/bin/sqlplus scott/tiger@myoracle


Add the library path to /etc/ld.so.conf, then run /sbin/ldconfig. You don't need to set LD_LIBRARY_PATH for libraries installed in standard locations like /usr/lib because these locations are already configured in /etc/ld.so.conf.


You could of course rename sqlplus to sqlplus.real and make a wrapper script:

#!/bin/shif [ "$LD_LIBRARY_PATH" = "" ]then        LD_LIBRARY_PATH=/what/everelse        LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/what/everfiexport LD_LIBRARY_PATHexec sqlplus.real ${1+"$@"}