Ruby on rails 在ubuntu 14.04 x64上安装ruby-oci8时出错

Ruby on rails 在ubuntu 14.04 x64上安装ruby-oci8时出错,ruby-on-rails,ruby,oracle,ubuntu,oci8,Ruby On Rails,Ruby,Oracle,Ubuntu,Oci8,我正在使用ubuntu 14.04 x64和以下环境变量: export ORACLE_HOME=/usr/lib/oracle/12.1/client64 export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib export PATH=$ORACLE_HOME/bin:$PATH Sqlplus工作正常 但当我尝试安装ruby-oci8 gem时,系统返回以下错误: bundle exec gem install ruby-oci8

我正在使用ubuntu 14.04 x64和以下环境变量:

export ORACLE_HOME=/usr/lib/oracle/12.1/client64
export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib
export PATH=$ORACLE_HOME/bin:$PATH
Sqlplus工作正常

但当我尝试安装ruby-oci8 gem时,系统返回以下错误:

bundle exec gem install ruby-oci8 --backtrace
Building native extensions.  This could take a while...
ERROR:  Error installing ruby-oci8:
    ERROR: Failed to build gem native extension.

    /opt/rbenv/versions/2.1.2/bin/ruby extconf.rb
/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.7/lib/bundler/spec_set.rb:92:in `block in materialize': Could not find ruby-oci8-2.1.7 in any of the sources (Bundler::GemNotFound)
    from /opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.7/lib/bundler/spec_set.rb:85:in `map!'
    from /opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.7/lib/bundler/spec_set.rb:85:in `materialize'
    from /opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.7/lib/bundler/definition.rb:132:in `specs'
    from /opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.7/lib/bundler/definition.rb:177:in `specs_for'
    from /opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.7/lib/bundler/definition.rb:166:in `requested_specs'
    from /opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.7/lib/bundler/environment.rb:18:in `requested_specs'
    from /opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.7/lib/bundler/runtime.rb:13:in `setup'
    from /opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.7/lib/bundler.rb:121:in `setup'
    from /opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.7/lib/bundler/setup.rb:17:in `<top (required)>'
    from /opt/rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /opt/rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'

extconf failed, exit code 1

Gem files will remain installed in /u/apps/poseidon_kco_production/shared/bundle/ruby/2.1.0/gems/ruby-oci8-2.1.7 for inspection.
Results logged to /u/apps/poseidon_kco_production/shared/bundle/ruby/2.1.0/extensions/x86_64-linux/2.1.0/ruby-oci8-2.1.7/gem_make.out
bundle exec gem安装ruby-oci8——回溯
构建本机扩展。这可能需要一段时间。。。
错误:安装ruby-oci8时出错:
错误:无法生成gem本机扩展。
/opt/rbenv/versions/2.1.2/bin/ruby extconf.rb
/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.7/lib/bundler/spec_set.rb:92:“物化中的块”:在任何源中都找不到ruby-oci8-2.1.7(bundler::GemNotFound)
来自/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.7/lib/bundler/spec_set.rb:85:in'map!'
来自/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.7/lib/bundler/spec_set.rb:85:“物化”中
来自/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.7/lib/bundler/definition.rb:132:in `规范'
来自/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.7/lib/bundler/definition.rb:177:in'specs_for'
来自/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.7/lib/bundler/definition.rb:166:“请求的规范”中
来自/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.7/lib/bundler/environment.rb:18:“请求的规范”中
从/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.7/lib/bundler/runtime.rb:13:在“设置”中
来自/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.7/lib/bundler.rb:121:在“设置”中
从/opt/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.7/lib/bundler/setup.rb:17:in`'
from/opt/rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core\u ext/kernel\u require.rb:55:in'require'
from/opt/rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core\u ext/kernel\u require.rb:55:in'require'
extconf失败,退出代码1
Gem文件将继续安装在/u/apps/poseidon_kco_production/shared/bundle/ruby/2.1.0/gems/ruby-oci8-2.1.7中,以供检查。
结果记录到/u/apps/poseidon_kco_production/shared/bundle/ruby/2.1.0/extensions/x86_64-linux/2.1.0/ruby-oci8-2.1.7/gem_make.out

有人知道会发生什么吗?

我记得大约两年前我在ruby-oci8上遇到过类似的问题,这是因为ruby-oci8不知何故不能与64位体系结构一起工作。我的解决方案是使用ruby 32位而不是64位

您是否遵循了以下步骤:

将Oracle与ruby结合使用是一件痛苦的事情,已经完成了:-)

更清楚地说,我所做的是:

  • 下载oracle即时客户端32位
  • 使用ruby 32位或x86_64安装ruby-oci8