Closed CharlesIrvineKC closed 8 years ago
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
Sorry, I broke fix_oralib.rb. I'll revert it soon.
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
Yes, the problem is now resolved. Thanks
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.
/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:in
open' from /usr/local/lib/ruby/gems/2.2.0/gems/ruby-oci8-2.2.1/ext/oci8/oraconf.rb:534:incheck_ic_dir' from /usr/local/lib/ruby/gems/2.2.0/gems/ruby-oci8-2.2.1/ext/oci8/oraconf.rb:316:in
get'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.
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:in
open' /usr/local/lib/ruby/gems/2.2.0/gems/ruby-oci8-2.2.1/ext/oci8/oraconf.rb:534:incheck_ic_dir' /usr/local/lib/ruby/gems/2.2.0/gems/ruby-oci8-2.2.1/ext/oci8/oraconf.rb:316:in
get'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': uninitialized constant Config (NameError)
~$ ruby -r rbconfig -e "p Config::CONFIG['CFLAGS']"
-e:1:in ': uninitialized constant Config (NameError)
~$ ruby -r rbconfig -e "p Config::CONFIG['LDFLAGS']"
-e:1:in ': uninitialized constant Config (NameError)
~$ ruby -r rbconfig -e "p Config::CONFIG['LIBS']"
-e:1:in ': uninitialized constant Config (NameError)
~$ ruby -r rbconfig -e "p Config::CONFIG['host']"
-e:1:in `': uninitialized constant Config (NameError)
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
<main>': uninitialized constant Config (NameError) ~$ ruby -r rbconfig -e "p Config::CONFIG['LDSHARED']" -e:1:in
<main>': uninitialized constant Config (NameError) ~$ ruby -r rbconfig -e "p Config::CONFIG['DLDLAGS']" -e:1:in
<main>': uninitialized constant Config (NameError) ~$ ruby -r rbconfig -e "p Config::CONFIG['GNU_LD']" -e:1:in
~$ 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
~$