如何安装ruby-oci8?

ear*_*ser 22 ruby oracle macos

我正在尝试在OS X上安装ruby-oci8.

我尝试过安装和不安装sudo.

错误消息没有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.
Run Code Online (Sandbox Code Playgroud)

错误消息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
Run Code Online (Sandbox Code Playgroud)

错误信息:

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
Run Code Online (Sandbox Code Playgroud)

etu*_*usm 47

适用于10.9/10.10/10.11OSX Mavericks/Yosemite/El Capitan的ruby-oci8安装略有更新版本 - 循序渐进:

  1. 请访问:http://www.oracle.com/technetwork/topics/intel-macsoft-096467.html
  2. 下载64位版本的instantclient-sqlplus,instantclient-sdk,instantclient-basic - 32位版本不适用于OSX 10.9
  3. 在/ opt/oracle创建目录
  4. 首先解压后立即客户端,移动到/ opt/oracle(应该添加一个文件夹 - 比如/ opt/oracle/instantclient_11_2 /)
  5. 解压Instantclient-sdk并将其内容移至/ opt/oracle/instantclient_11_2 /
  6. 解压Instantclient-sqlplus并移动其内容/ opt/oracle/instantclient_11_2 /
  7. 打开终端(如果你还没有)并输入...
  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 (创建一个符号链接)
  12. env
  13. 验证DYLD_LIBRARY_PATH =/opt/oracle/instantclient_11_2(确保没有尾随/在instantclient_11_2之后)
  14. 验证ORACLE_HOME =/opt/oracle/instantclient_11_2
  15. gem install ruby​​-oci8

应该在那之后工作.文件结构应该类似于:

在此输入图像描述

  • 哇,痛苦的屁股! (16认同)
  • 在El Capitan上,DYLD_*环境变量被忽略,因此gem不会构建.[此脚本](https://github.com/kubo/fix_oralib_osx)修复了该问题. (6认同)
  • 在较新的版本中,意思是使用 SIP,即。如果用户无法设置 DYLD_LIBRARY_PATH,则应改用特定的 OCI_DIR。 (3认同)

Gar*_*sco 8

对于任何试图让它在2016年的旧年工作的人,错误消息现在包含指向页面的链接http://www.rubydoc.info/github/kubo/ruby-oci8/file/docs/install- on-osx.md,它为您提供了如何使用Homebrew进行操作的说明.以上所有的东西都没有为我工作(我尝试了所有这些),但后来我把这个问题带给了同事,他们说:"嘿,你在那里的错误信息中尝试了那个链接吗?" 果然,这样做了.

  • 哇,看了错误信息?谁笨蛋?谢谢.+1 (2认同)