Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot install ruby-oci8 on OS X El Capitan #127

Closed
CharlesIrvineKC opened this issue Apr 4, 2016 · 4 comments
Closed

Cannot install ruby-oci8 on OS X El Capitan #127

CharlesIrvineKC opened this issue Apr 4, 2016 · 4 comments

Comments

@CharlesIrvineKC
Copy link

Following the directions at http://www.rubydoc.info/github/kubo/ruby-oci8/file/docs/install-on-osx.md for manual installation, I am not able to install ruby-oci8. Problem reports log:

******** Console Output ******************

Last login: Mon Apr 4 17:15:46 on ttys000
~$ export OCI_DIR=/opt/oracle/instantclient_11_2/
~$ gem install ruby-oci8
Building native extensions. This could take a while...
ERROR: Error installing ruby-oci8:
ERROR: Failed to build gem native extension.

current directory: /usr/local/lib/ruby/gems/2.2.0/gems/ruby-oci8-2.2.1/ext/oci8

/usr/local/opt/ruby/bin/ruby -r ./siteconf20160404-8794-nj6ug7.rb extconf.rb
checking for load library path...
DYLD_LIBRARY_PATH is not set.
checking DYLD_FALLBACK_LIBRARY_PATH...
checking /Users/crirvine/lib... no
checking /usr/local/lib... no
checking /lib... no
checking /usr/lib... no
checking OCI_DIR...
checking /opt/oracle/instantclient_11_2/... yes
checking dependent shared libraries in /opt/oracle/instantclient_11_2/libclntsh.dylib.11.1...
*** 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
--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=/usr/local/Cellar/ruby/2.2.3/bin/$(RUBY_BASE_NAME)
--with-instant-client
--without-instant-client
/usr/local/lib/ruby/gems/2.2.0/gems/ruby-oci8-2.2.1/ext/oci8/oraconf.rb:544:in block in check_ic_dir': RuntimeError (RuntimeError) from /usr/local/lib/ruby/gems/2.2.0/gems/ruby-oci8-2.2.1/ext/oci8/oraconf.rb:534:inopen'
from /usr/local/lib/ruby/gems/2.2.0/gems/ruby-oci8-2.2.1/ext/oci8/oraconf.rb:534:in check_ic_dir' from /usr/local/lib/ruby/gems/2.2.0/gems/ruby-oci8-2.2.1/ext/oci8/oraconf.rb:316:inget'

from extconf.rb:22:in `'

Error Message:
The output of "otool -L /opt/oracle/instantclient_11_2/libclntsh.dylib.11.1" is:
| /opt/oracle/instantclient_11_2/libclntsh.dylib.11.1:
| /ade/b/3071542110/oracle/rdbms/lib/libclntsh.dylib.11.1 (compatibility version 0.0.0, current version 0.0.0)
| /ade/dosulliv_ldapmac/oracle/ldap/lib/libnnz11.dylib (compatibility version 0.0.0, current version 0.0.0)
| /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0)

Ruby-oci8 doesn't work without DYLD_LIBRARY_PATH or DYLD_FALLBACK_LIBRARY_PATH
because the dependent file "/ade/b/3071542110/oracle/rdbms/lib/libclntsh.dylib.11.1" doesn't exist.

If you need to use ruby-oci8 without DYLD_LIBRARY_PATH or DYLD_FALLBACK_LIBRARY_PATH,
download "fix_oralib.rb" in https://github.com/kubo/fix_oralib_osx
and execute it in the directory "/opt/oracle/instantclient_11_2" as follows to fix the path.

cd /opt/oracle/instantclient_11_2
curl -O https://raw.githubusercontent.com/kubo/fix_oralib_osx/master/fix_oralib.rb
ruby fix_oralib.rb

Note: DYLD_* environment variables are unavailable for security reasons on OS X 10.11 El Capitan.

Backtrace:
/usr/local/lib/ruby/gems/2.2.0/gems/ruby-oci8-2.2.1/ext/oci8/oraconf.rb:544:in block in check_ic_dir' /usr/local/lib/ruby/gems/2.2.0/gems/ruby-oci8-2.2.1/ext/oci8/oraconf.rb:534:inopen'
/usr/local/lib/ruby/gems/2.2.0/gems/ruby-oci8-2.2.1/ext/oci8/oraconf.rb:534:in check_ic_dir' /usr/local/lib/ruby/gems/2.2.0/gems/ruby-oci8-2.2.1/ext/oci8/oraconf.rb:316:inget'

extconf.rb:22:in `'

See:

extconf failed, exit code 1

Gem files will remain installed in /usr/local/lib/ruby/gems/2.2.0/gems/ruby-oci8-2.2.1 for inspection.
Results logged to /usr/local/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-14/2.2.0/ruby-oci8-2.2.1/gem_make.out

*********** There was no mkmf.log file created ****************

~$ file which ruby
/usr/local/bin/ruby: Mach-O 64-bit executable x86_64
~$ ruby --version
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin14]
~$ ruby -r rbconfig -e "p Config::CONFIG['host']"
-e:1:in <main>': uninitialized constant Config (NameError) ~$ ruby -r rbconfig -e "p Config::CONFIG['CC']" -e:1:in

': uninitialized constant Config (NameError)
~$ ruby -r rbconfig -e "p Config::CONFIG['CFLAGS']"
-e:1:in <main>': uninitialized constant Config (NameError) ~$ ruby -r rbconfig -e "p Config::CONFIG['LDSHARED']" -e:1:in': uninitialized constant Config (NameError)
~$ ruby -r rbconfig -e "p Config::CONFIG['LDFLAGS']"
-e:1:in <main>': uninitialized constant Config (NameError) ~$ ruby -r rbconfig -e "p Config::CONFIG['DLDLAGS']" -e:1:in': uninitialized constant Config (NameError)
~$ ruby -r rbconfig -e "p Config::CONFIG['LIBS']"
-e:1:in <main>': uninitialized constant Config (NameError) ~$ ruby -r rbconfig -e "p Config::CONFIG['GNU_LD']" -e:1:in': uninitialized constant Config (NameError)
~$ ruby -r rbconfig -e "p Config::CONFIG['host']"
-e:1:in `': uninitialized constant Config (NameError)

~$ file /opt/oracle/instantclient_11_2/lib
libclntsh.dylib libnnz11.dylib libociei.dylib libsqlplus.dylib
libclntsh.dylib.11.1 libocci.dylib.11.1 libocijdbc11.dylib libsqlplusic.dylib
~$ file /opt/oracle/instantclient_11_2/lib
libclntsh.dylib libnnz11.dylib libociei.dylib libsqlplus.dylib
libclntsh.dylib.11.1 libocci.dylib.11.1 libocijdbc11.dylib libsqlplusic.dylib
~$ file /opt/oracle/instantclient_11_2/libclntsh.*
/opt/oracle/instantclient_11_2/libclntsh.dylib: Mach-O 64-bit dynamically linked shared library x86_64
/opt/oracle/instantclient_11_2/libclntsh.dylib.11.1: Mach-O 64-bit dynamically linked shared library x86_64
~$ echo $LD_LIBRARY_PATH

~$ echo $DYLD_LIBRARY_PATH

~$

@kubo
Copy link
Owner

kubo commented Apr 5, 2016

Run the following command as in the error message.

cd /opt/oracle/instantclient_11_2
curl -O https://raw.githubusercontent.com/kubo/fix_oralib_osx/master/fix_oralib.rb
ruby fix_oralib.rb

@kubo
Copy link
Owner

kubo commented Apr 5, 2016

Sorry, I broke fix_oralib.rb. I'll revert it soon.

@kubo
Copy link
Owner

kubo commented Apr 5, 2016

I fixed it by https://github.com/kubo/fix_oralib_osx/commit/bce578e4c6b2de9575e00e8abbae764a0af59f93.
Could you run the following command again?

cd /opt/oracle/instantclient_11_2
curl -O https://raw.githubusercontent.com/kubo/fix_oralib_osx/master/fix_oralib.rb
ruby fix_oralib.rb

@CharlesIrvineKC
Copy link
Author

Yes, the problem is now resolved. Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants