1

我刚刚创建了一个新的 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)>'
4

1 回答 1

1

你可能有路径问题。

要查看您是否安装了多个版本的 Ruby、Rails 或 gem:

find / | grep bin/ruby

    查找 / | grep bin/rails 查找 / | grep bin/gem

在 Amazon 服务器上,我通常保持系统 Ruby 不变,并使用出色的 ruby​​-build 脚本(我认为比 RVM 更好)安装我自己当前的 Ruby。

https://github.com/sstephenson/ruby-build

如果您确实有多个 Ruby,我建议您将环境设置为选择一个,例如通过ruby-build在文件中使用或设置 PATH.bashrc/etc/environment文件如下:

PATH=/opt/ruby/1.9.1-p134/bin;$PATH

如果您使用的是 RVM,我建议您将其卸载并更改为使用 ruby​​-build。

要卸载 RVM,我使用以下脚本:

https://github.com/SixArm/sixarm_unix_shell_scripts/blob/master/rvm-uninstall-danger
于 2012-09-02T14:59:25.660 回答