【发布时间】:2012-09-02 22:59:25
【问题描述】:
我刚刚创建了一个新的 amazon Linux 实例并安装了 ruby 1.9.3 和 rails 3.2.8。
创建新项目后,我立即收到由于 sqlite3 导致的失败。错误是:
[root@xxxxx fun]# rails server
/usr/local/share/gems/gems/sqlite3-1.3.6/lib/sqlite3.rb:6:in `require': cannot load such file -- sqlite3/sqlite3_native (LoadError)
from /usr/local/share/gems/gems/sqlite3-1.3.6/lib/sqlite3.rb:6:in `rescue in <top (required)>'
from /usr/local/share/gems/gems/sqlite3-1.3.6/lib/sqlite3.rb:2:in `<top (required)>'
我已经确认 sqlite3 在 Rails 之外运行良好(即我成功创建了一个数据库,使用 ruby 代码进行了插入/读取)。下面是在 irb 中加载 sqlite3 的快速演示:
irb(main):001:0> require 'sqlite3'
=> true
我完全了解捆绑安装。 sqlite3 版本为 1.3.6
我安装了以下软件包:
ruby19-1.9.3.0-7.17.amzn1.i686
ruby19-devel-1.9.3.0-7.17.amzn1.i686
ruby19-irb-1.9.3.0-7.17.amzn1.noarch
ruby19-libs-1.9.3.0-7.17.amzn1.i686
rubygem19-io-console-0.3-7.17.amzn1.i686
rubygem19-rdoc-3.9.4-7.17.amzn1.i686
rubygems19-1.8.11-7.17.amzn1.noarch
sqlite-3.6.20-1.8.amzn1.i686
sqlite-devel-3.6.20-1.8.amzn1.i686
有什么想法可以让事情正常进行吗?谢谢!
更新 为了“有趣”,我从我的 Gemfile 中注释掉了 gem sqlite3 行并再次尝试了“rails server”。首先它抱怨没有 javascript 运行时(我可以修复),但随后它得到了以下信息。我的安装似乎出了点问题。
[root@xxxx fun]# rails server
/usr/local/share/gems/gems/railties-3.2.8/lib/rails/railtie/configuration.rb:85:in `method_missing': undefined method `active_record' for #<Rails::Application::Configuration:0x9e68f58> (NoMethodError)
from /srv/rails/fun/config/application.rb:54:in `<class:Application>'
from /srv/rails/fun/config/application.rb:13:in `<module:Fun>'
from /srv/rails/fun/config/application.rb:12:in `<top (required)>'
【问题讨论】:
-
感谢您的建议,我之前看过那个帖子并排除了它。为了安全起见,我尝试了它建议的步骤,但我仍然看到同样的问题。
-
据我所知,amazon linux 使用 yum 包管理器,当您运行以下命令时会发生什么:
yum install ruby-devel sqlite-devel? -
是的,这个系统正在使用 yum。我检查了软件包,这是我安装的(ruby-devel 提取 1.8.7 代码)。我用我已安装的软件包列表更新了原始帖子。似乎所有正确的东西都在那里。我不明白为什么独立的 ruby 脚本可以工作,但 rails croaks - 某种类型的加载路径问题?
标签: ruby-on-rails ruby sqlite