Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to install ruby-oci8?

Tags:

I'm trying to install ruby-oci8 on OS X.

I've tried installing both with and without sudo.

Error Message without sudo:

gem install ruby-oci8 ERROR:  While executing gem ... (Gem::FilePermissionError)     You don't have write permissions into the /Library/Ruby/Gems/1.8 directory. 

Error Message with sudo:

sudo gem install ruby-oci8 Password: Building native extensions.  This could take a while... ERROR:  Error installing ruby-oci8:     ERROR: Failed to build gem native extension.          /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb checking for load library path...    DYLD_LIBRARY_PATH is not set. checking for cc... ok checking for gcc... yes checking for LP64... yes checking for sys/types.h... yes checking for ruby header... ok *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers.  Check the mkmf.log file for more details.  You may need configuration options.  Provided configuration options:     --with-opt-dir     --without-opt-dir     --with-opt-include     --without-opt-include=${opt-dir}/include     --with-opt-lib     --without-opt-lib=${opt-dir}/lib     --with-make-prog     --without-make-prog     --srcdir=.     --curdir     --ruby=/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby     --with-instant-client     --without-instant-client ./oraconf.rb:887:in `get_home': RuntimeError (RuntimeError)     from ./oraconf.rb:703:in `initialize'     from ./oraconf.rb:319:in `new'     from ./oraconf.rb:319:in `get'     from extconf.rb:18 

Error Message:

Set the environment variable ORACLE_HOME if Oracle Full Client. Append the path of Oracle client libraries to DYLD_LIBRARY_PATH if Oracle Instant Client.  The 'sudo' command unset some environment variables for security reasons. Pass required varialbes as follows      sudo env DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH /usr/bin/gem install ruby-oci8   or       sudo env ORACLE_HOME=$ORACLE_HOME /usr/bin/gem install ruby-oci8   Backtrace:   ./oraconf.rb:887:in `get_home'   ./oraconf.rb:703:in `initialize'   ./oraconf.rb:319:in `new'   ./oraconf.rb:319:in `get'   extconf.rb:18  See:  * http://ruby-oci8.rubyforge.org/en/HowToInstall.html  * http://ruby-oci8.rubyforge.org/en/ReportInstallProblem.html 
like image 493
earlyriser Avatar asked Aug 10 '12 01:08

earlyriser


People also ask

What is Ruby OCI8?

ruby-oci8 is a ruby interface for Oracle using OCI8 API. It is available with Oracle 10g or later including Oracle Instant Client.


1 Answers

Slightly updated version of install of ruby-oci8 for 10.9/10.10/10.11OSX Mavericks/Yosemite/El Capitan - step-by-step:

  1. Go here: http://www.oracle.com/technetwork/topics/intel-macsoft-096467.html
  2. Download the 64bit versions of instantclient-sqlplus, instantclient-sdk, instantclient-basic - the 32bit versions do not work with OSX 10.9
  3. Create directories at /opt/oracle
  4. Unzip instantclient-basic first, move to /opt/oracle (should add a folder - something like /opt/oracle/instantclient_11_2/)
  5. Unzip instantclient-sdk and move its contents to /opt/oracle/instantclient_11_2/
  6. Unzip instantclient-sqlplus and move its contents /opt/oracle/instantclient_11_2/
  7. Open Terminal (if you haven't already) and type...
  8. DYLD_LIBRARY_PATH=/opt/oracle/instantclient_11_2 export DYLD_LIBRARY_PATH
  9. ORACLE_HOME=/opt/oracle/instantclient_11_2 export ORACLE_HOME
  10. cd /opt/oracle/instantclient_11_2
  11. ln -s libclntsh.dylib.11.1 libclntsh.dylib (creates a symbolic link)
  12. env
  13. verify that DYLD_LIBRARY_PATH=/opt/oracle/instantclient_11_2 (be sure there's no trailing / after instantclient_11_2)
  14. verify ORACLE_HOME=/opt/oracle/instantclient_11_2
  15. gem install ruby-oci8

Should work after that. The file structure should look similar to this:

enter image description here

like image 170
etusm Avatar answered Oct 04 '22 07:10

etusm