'How to install Oracle Instant Client on a Mac?
How to install Oracle Instant Client Version 12.1.0.2 (64-bit) on a Mac (OS X 10.11.5)
I have downloaded version 12.1.0.2 (64-bit) version and unzipped the file.
I now have the following files under /downloads/instantclient:
libclntsh.dylib.12.1
libclntshcore.dylib.12.1
libnnz12.dylib
libocci.dylib.12.1
libociei.dylib
libocijdbc12.dylib
libons.dylib
liboramysql12.dylib
ojdbc6.jar
ojdbc7.jar
uidrvci
xstreams.jar
adrci
BASIC_README
genezi
I don't have the slightest idea how to go from this to a working version of Instant Client so I can connect to a db from the CLI. The instructions on Oracles website seem to be overly complicated.
I have found a few blogs detailing the installation method, but they all seem to be from previous version of Instant Client. Out of desperation, I downloaded a previous version of Instant Client, but still seemed to be missing files referred to in the tutorial.
Does anyone know how I can get Oracle Instant Client on my Mac?
Solution 1:[1]
HomeBrew saved me. I did not figure out the environment path.
Per referenced blog this Answer (see bottom) was originated from:
(Update 10/06/2020: Step 1 is no longer necessary, just run the brew commands!)
This is necessary because of Oracle licenses.
instantclient-basic-macos.x64–11.2.0.4.0.zip
and
instantclient-sqlplus-macos.x64–11.2.0.4.0.zip
Put the files in ~/Library/Caches/Homebrew
PS:
in the latest versions of HomeBrew replace the above location
~/Library/Caches/HomeBrew
with~/Library/Caches/HomeBrew/downloads
.And also rename the downloaded files with the names suggested by HomeBrew.
Thanks to @manuka_m
2. Next run the following commands
$ brew tap InstantClientTap/instantclient
$ brew install instantclient-basic
$ brew install instantclient-sqlplus
Originated from Joost van Wollingen's doc
Solution 2:[2]
There are multiple files available for download. From the files you listed you have only downloaded and unzipped the 'basic' package.
To run the CLI (by which I assume you mean SQL*Plus) you need that package as well - the fourth in the list, titled "Instant Client Package - SQL*Plus: Additional libraries and executable for running SQL*Plus with Instant Client".
The packages are arranged such that if you unzip all the ones you need from the same place they all put their files in the same directory. Unfortunately that doesn't quite work if you use Safari and have it set to open certain downloaded files; each zip file is expanded into a separate folder, with incremented names. And it deletes the zip files afterwards.
You can either disable that automatic unzipping and do it manually, or copy the files from the individual folders into a common one.
You may also need to create a symbolic link for the main client library; from inside that folder (in Terminal) you would do:
ln -s libclntsh.dylib.12.1 libclntsh.dylib
You can put that combined folder anywhere you like. You then need to add the full path to that folder to your PATH and environment variable - you can add that to your .bash_profile so you don't need to do it manually.
Once you've done that you can execute sqlplus
from anywhere.
So to summarise:
If you're using Safari, disable automatic opening of the zip files; from Safari->Preferences->General untick the 'Open "safe" files after downloading' checkbox.
Download instantclient-basic-macos.x64-12.1.0.2.0.zip and instantclient-sqlplus-macos.x64-12.1.0.2.0.zip
In Terminal go to your Downloads directory.
Unzip both files:
MacBook:Downloads alex$ unzip instantclient-basic-macos.x64-12.1.0.2.0.zip Archive: instantclient-basic-macos.x64-12.1.0.2.0.zip inflating: instantclient_12_1/BASIC_README inflating: instantclient_12_1/adrci inflating: instantclient_12_1/genezi inflating: instantclient_12_1/libclntsh.dylib.12.1 inflating: instantclient_12_1/libclntshcore.dylib.12.1 inflating: instantclient_12_1/libnnz12.dylib inflating: instantclient_12_1/libocci.dylib.12.1 inflating: instantclient_12_1/libociei.dylib inflating: instantclient_12_1/libocijdbc12.dylib inflating: instantclient_12_1/libons.dylib inflating: instantclient_12_1/liboramysql12.dylib inflating: instantclient_12_1/ojdbc6.jar inflating: instantclient_12_1/ojdbc7.jar inflating: instantclient_12_1/uidrvci inflating: instantclient_12_1/xstreams.jar MacBook:Downloads alex$ unzip instantclient-sqlplus-macos.x64-12.1.0.2.0.zip Archive: instantclient-sqlplus-macos.x64-12.1.0.2.0.zip inflating: instantclient_12_1/SQLPLUS_README inflating: instantclient_12_1/glogin.sql inflating: instantclient_12_1/libsqlplus.dylib inflating: instantclient_12_1/libsqlplusic.dylib inflating: instantclient_12_1/sqlplus
Optionally rename and/or move the
instantclient_12_1
directory to somewhere more permanent.Add the location to your path in your current session, and also in your shell profile/resource file to make it take effect on every login:
export PATH=$HOME/Downloads/instantclient_12_1:$PATH
Enjoy.
MacBook:Downloads alex$ export PATH=$HOME/Downloads/instantclient_12_1:$PATH MacBook:Downloads alex$ which sqlplus /Users/alex/Downloads/instantclient_12_1/sqlplus MacBook:Downloads alex$ sqlplus SQL*Plus: Release 12.1.0.2.0 Production on Thu Jun 9 16:29:49 2016 Copyright (c) 1982, 2016, Oracle. All rights reserved. Enter user-name:
El Capitan added system integrity protection (SIP), and one side effect of that is that exporting DYLD_LIBRARY_PATH doesn't work. That could affect running SQL*Plus from a shell script, for example. There are workarounds for the 11g instant client. The installation notes at the bottom of the download page have changed since I last did this, and it now says to hard link the library files to the user's ~/lib
directory to avoid that issue. Fortunately it looks like you don't need to worry about that with the 12c client - they've fixed the way it's built.
Solution 3:[3]
Using Homebrew (https://brew.sh/) simple as that:
$ brew tap InstantClientTap/instantclient
$ brew install instantclient-basic
$ brew install instantclient-sqlplus
No additional libs needed in my case. Depending on your shell - rehash
could be needed.
Solution 4:[4]
Within SQLdeveloper you will find SQLplus, that works out of the box like on Windows.
(Should start like this)
If you move the app under Application and manage to start up the SQLdeveloper-client you cant fint it here, called sql:
/Applications/SQLDeveloper.app/Contents/Resources/sqldeveloper/sqldeveloper/bin/sql
To directly login, run sql and exit:
sql username/password@ADDRESS_TO_DB:1521/SID @/path/to/your/pls_file_containing_sql/test.pls
Remember to include 'exit;' at the end of your pls-file.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | bbrame |
Solution 2 | Community |
Solution 3 | |
Solution 4 | Punnerud |