Ubuntu isn’t one of the supported operating systems from Oracle, so we have do to some manual work to get things set up.
First, we need to create a home for the files we’ll be downloading.
sudo mkdir -p /opt/oracle/11_2 sudo apt-get install libaio1
Then we need to visit Oracle’s download page and grab these three files for the Instant Client for Linux:
Instant Client Basic-Lite
Instant Client SDK
Instant Client SQLPlus*
We’ll want the ZIP files, not the RPM files, for each one. You will need an Oracle account to download these files.
Then, once we get those zip files over to our Ubuntu server, we need to unzip them all. We should end up with a folder called
Now let’s move that folder into the /opt/oracle/11_2 structure we made.
mv instantclient_11_2 /opt/oracle/11_2/instantclient
Next, we need to open /etc/environment and add this line:
The LD_LIBRARY_PATH is a variable used by lots of programs that talk to Oracle.
At this point, you will want to estart your terminal session so the environment variable will be available. You could set it manually, but this is a good place to test to make sure that the variable is actually loading into the environment.
Next, we’ll fire up sqlplus to make sure that the Oracle stuff is installed properly.
If it comes up without any errors, we’re good to go. We can exit with CTRL+C.
Next, let’s install the Ruby Oracle adapter. We’ll need to symlink a file since we’re using the InstantClient.
cd /opt/oracle/11_2/instantclient ln -s libclntsh.so.11.1 libclntsh.so
Next, we need to copy over all the development header files into the instantclient root folder so RubyGems can find them when it needs to compile the native extensions.
cd /opt/oracle/11_2/instantclient/ cp sdk/include/*.h .
Finally, we can install the gem. If you’re using sudo, then the environment won’t have the variables you need so you’ll need to pass them with the command.
sudo env LD_LIBRARY_PATH=/opt/oracle/11_2/instantclient gem install ruby-oci8
That should be it. If you run into other problems, don’t fight with Oracle – just remove the /opt/oracle/11_2/instantclient folder and start over.