Skip to content

Instantly share code, notes, and snippets.

@jimzucker
Forked from mmasashi/README.md
Last active October 5, 2018 11:55
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save jimzucker/957b92a9c954eaa30a8c74e7b2f74bd6 to your computer and use it in GitHub Desktop.
Save jimzucker/957b92a9c954eaa30a8c74e7b2f74bd6 to your computer and use it in GitHub Desktop.
Install Oracle instant client (sqlplus) v12.1 on MacOSX

Install Oracle instant client (sqlplus) on MacOSX

  1. Get Oracle instant client for MacOSX
  1. Unarchive downloaded zip files into a same directory
  • ex: $HOME/Downloads/instantclient_12_1
  1. Create install.sh and copy the following code and past it on that file.
  2. Run source /usr/local/share/instantclient/instantclient.sh
  3. Run sqlplus to check if you can run "sqlplus" in any place
  4. Add source /usr/local/share/instantclient/instantclient.sh to your .bashrc
#!/bin/bash
set -e
export ORACLE_VERSION="12.1.0.2.0"
mkdir -p /usr/local/Oracle/product/instantclient/$ORACLE_VERSION/bin
mkdir -p /usr/local/Oracle/product/instantclient/$ORACLE_VERSION/lib
mkdir -p /usr/local/Oracle/product/instantclient/$ORACLE_VERSION/jdbc/lib
mkdir -p /usr/local/Oracle/product/instantclient/$ORACLE_VERSION/rdbms/jlib
mkdir -p /usr/local/Oracle/product/instantclient/$ORACLE_VERSION/sqlplus/admin
#ensure we have all of the files we need
if [ ! -f sqlplus ]
then
echo "instantclient-sqlplus not downloaded, exiting...."
exit 1
fi
if [ ! -d sdk ]
then
echo "ERROR: instantclient-sdk not downloaded, exiting...."
exit 1
fi
mv ojdbc* /usr/local/Oracle/product/instantclient/$ORACLE_VERSION/jdbc/lib/
if [ $? -ne 0 ]
then
echo "ERROR: cannot find ojdbc drivers, instantclient-basic not installed, exiting"
exit 1
fi
mv sdk /usr/local/Oracle/product/instantclient/$ORACLE_VERSION/lib/
mv x*.jar /usr/local/Oracle/product/instantclient/$ORACLE_VERSION/rdbms/jlib/
mv glogin.sql /usr/local/Oracle/product/instantclient/$ORACLE_VERSION/sqlplus/admin/
mv *dylib* /usr/local/Oracle/product/instantclient/$ORACLE_VERSION/lib/
mv *README /usr/local/Oracle/product/instantclient/$ORACLE_VERSION/
mv * /usr/local/Oracle/product/instantclient/$ORACLE_VERSION/bin/
cd /usr/local/bin
ln -s ../Oracle/product/instantclient/$ORACLE_VERSION/bin/sqlplus sqlplus
cd /usr/local/Oracle/product/instantclient/$ORACLE_VERSION
mkdir -p share/instantclient
cd /usr/local/share
ln -s ../Oracle/product/instantclient/$ORACLE_VERSION/share/instantclient/ instantclient
cd /usr/local/Oracle/product/instantclient/$ORACLE_VERSION/lib
ln -s libclntsh.dylib.12.1 libclntsh.dylib
echo "
export ORACLE_VERSION=$ORACLE_VERSION
export ORACLE_BASE=/usr/local/Oracle
export ORACLE_HOME=\$ORACLE_BASE/product/instantclient/$ORACLE_VERSION
export DYLD_LIBRARY_PATH=\$ORACLE_HOME/lib
export OCI_DIR=\$DYLD_LIBRARY_PATH
export TNS_ADMIN=\$ORACLE_BASE/admin/network
" > /usr/local/share/instantclient/instantclient.sh
echo "Done!"
echo
echo "Next step: Add the following code to your ~/.bashrc"
echo "source /usr/local/share/instantclient/instantclient.sh"
exit 0
@endryha
Copy link

endryha commented Oct 5, 2018

#!/bin/bash

set -e
export ORACLE_VERSION="12.1.0.2.0"
mkdir -p /usr/local/Oracle/product/instantclient/$ORACLE_VERSION/bin
mkdir -p /usr/local/Oracle/product/instantclient/$ORACLE_VERSION/lib
mkdir -p /usr/local/Oracle/product/instantclient/$ORACLE_VERSION/jdbc/lib
mkdir -p /usr/local/Oracle/product/instantclient/$ORACLE_VERSION/rdbms/jlib
mkdir -p /usr/local/Oracle/product/instantclient/$ORACLE_VERSION/sqlplus/admin

#ensure we have all of the files we need
if [ ! -f sqlplus ]
then
  echo "instantclient-sqlplus not downloaded, exiting...."
  exit 1
fi

if [ ! -d sdk ]
then
  echo "ERROR: instantclient-sdk not downloaded, exiting...."
  exit 1
fi
mv ojdbc* /usr/local/Oracle/product/instantclient/$ORACLE_VERSION/jdbc/lib/
if [ $? -ne 0 ]
then
  echo "ERROR: cannot find ojdbc drivers, instantclient-basic not installed, exiting"
  exit 1
fi
mv sdk /usr/local/Oracle/product/instantclient/$ORACLE_VERSION/lib/
mv x*.jar /usr/local/Oracle/product/instantclient/$ORACLE_VERSION/rdbms/jlib/
mv glogin.sql /usr/local/Oracle/product/instantclient/$ORACLE_VERSION/sqlplus/admin/
mv *dylib* /usr/local/Oracle/product/instantclient/$ORACLE_VERSION/lib/
mv *README /usr/local/Oracle/product/instantclient/$ORACLE_VERSION/
mv * /usr/local/Oracle/product/instantclient/$ORACLE_VERSION/bin/
cd /usr/local/bin
ln -sf ../Oracle/product/instantclient/$ORACLE_VERSION/bin/sqlplus sqlplus

cd /usr/local/Oracle/product/instantclient/$ORACLE_VERSION
mkdir -p share/instantclient
cd /usr/local/share
ln -sf ../Oracle/product/instantclient/$ORACLE_VERSION/share/instantclient/ instantclient
cd /usr/local/Oracle/product/instantclient/$ORACLE_VERSION/lib
ln -sf libclntsh.dylib.12.1 libclntsh.dylib

echo "
export ORACLE_VERSION=$ORACLE_VERSION
export ORACLE_BASE=/usr/local/Oracle
export ORACLE_HOME=\$ORACLE_BASE/product/instantclient/$ORACLE_VERSION
export DYLD_LIBRARY_PATH=\$ORACLE_HOME/lib
export OCI_DIR=\$DYLD_LIBRARY_PATH
export TNS_ADMIN=\$ORACLE_BASE/admin/network
" > /usr/local/share/instantclient/instantclient.sh

echo "Done!"
echo
echo "Next step:  Add the following code to your ~/.bashrc"
echo "source /usr/local/share/instantclient/instantclient.sh"
exit 0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment