ActiveRecord oracle_enhanced适配器无法加载ruby-oci8库

时间:2011-08-10 19:56:55

标签: ruby-on-rails oracle oci8

成功安装ruby-0ci8 gem和oracle_enhanced适配器gem后,当我尝试启动rails项目服务器时出现以下错误:

=> Booting WEBrick
=> Rails 3.0.3 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
Exiting
/Library/Ruby/Gems/1.8/gems/activerecord-oracle_enhanced-adapter-1.3.2/lib/active_record/connection_adapters/oracle_enhanced_oci_connection.rb:7: 
ERROR: ActiveRecord oracle_enhanced adapter could not load ruby-oci8 library. 
Please install ruby-oci8 gem. (LoadError)

enhanded adapter和ruby-oci8 gem都出现在我的gem列表中。两者都存在于我的Gemfile中。为什么适配器找不到oci8库?

有关我正在运行的设置的一些规范:

  • Mac Snow Leopard(10.6.8)
  • Ruby 1.8.7(2009-06-12 patchlevel 174)[i686-darwin10.8.0]
  • Rails 3.0.3
  • ruby​​-oci8(2.0.4)[宝石]
  • activerecord-oracle_enhanced-adapter(1.3.2)[gem]

我看过这篇文章:Rails 3.0.3 - Oracle_enhanced doesn't work。但它没有帮助。还有其他人遇到过这个吗?

==============================

答案

我明白了。最后,我在/ usr / local / oracle / instantclient_10_2 /中有一个不正确的文件结构,我已经为我的oracle即时客户端存储了文件。这就是造成所有问题的原因。基本上我已经在第一个目录中嵌套了第二个instantclient_10_2目录,并且我的.bash_profile查找了第一个目录,而不是它下面的目录。

3 个答案:

答案 0 :(得分:11)

运行sudo apt-get install libaio1

答案 1 :(得分:2)

- 基本上,我在Gemfile中添加了以下两行:

  1. gem'ruby-oci8','〜> 2.0.6'

  2. gem'activerecord-oracle_enhanced-adapter','〜> 1.4.0'

  3. - 然后在命令行上运行以下命令:

      

    捆绑安装

    - 确保你在Gemfile中没有其他版本的ruby-oci8或activerecord-oracle_enhanced-adapter


    - 对于常规oracle活动记录适配器,我添加了这些行:

    1. gem'ruby-oci8','〜> 1.0.4'

    2. gem'activerecord-oracle-adapter','〜> 1.0.0.9250'

    3. - 然后在命令行上运行以下命令:

        

      捆绑安装

      我从以下方面得到了解决方案: Rails 3.0.3 - Oracle_enhanced doesn't work

答案 2 :(得分:0)

此问题在platform specific issues的宝石列表中注明。您最有可能的解决方案是遵循有关如何设置Oracle Instant Client

的指南