当前位置:  开发笔记 > 后端 > 正文

RubyGems的.Rails中的LoadError

如何解决《RubyGems的.Rails中的LoadError》经验,为你挑选了0个好方法。

每次我启动我的Rails应用程序时,我都会得到具有以下输出的LoadError.

在Rails 2.3.8上:

no such file to load -- sqlite3/sqlite3_native
:29:in `require'

在Rails 3.0.0上:

no such file to load -- bundler
:29:in `require'

我使用Nginx + Passenger在开发机器上以生产模式运行应用程序.

这个问题的原因是什么?我该如何解决?

谢谢.

Debian GNU/Linux 5.0.6;

Ruby 1.9.2;

Rubygems 1.3.7;

Ruby on Rails 2.3.8,3.0.0;

Nginx 0.8.50;

乘客2.2.15;

sqlite3-ruby 1.3.1;

bundler 1.0.0.rc.6.

更新


我的所有宝石都是由非特权用户在本地目录中安装的/home//.gem.如果它有帮助,这是gem env输出:

RubyGems Environment:
  - RUBYGEMS VERSION: 1.3.7
  - RUBY VERSION: 1.9.2 (2010-08-18 patchlevel 0) [i686-linux]
  - INSTALLATION DIRECTORY: /home//.gem
  - RUBY EXECUTABLE: /usr/local/bin/ruby
  - EXECUTABLE DIRECTORY: /home//.gem/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-linux
  - GEM PATHS:
     - /home//.gem
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
     - "gem" => "--no-ri --no-rdoc"
     - :gemhome => "/home//.gem"
     - :gempath => ["/home//.gem"]
  - REMOTE SOURCES:
     - http://rubygems.org/

更新


我解决了这个问题.它的来源是我定义了一个自定义宝石路径.那是我在~/.gemrc文件中添加了以下几行:

:gemhome: /home//.gem
:gempaths:
  - /home//.gem

因此,我的所有宝石都放在指定的目录中,但不是默认目录.出于某种原因,Rubygems不会在那里找到它并且会出现异常.

当我从文件中删除这些行时,为Rubygems设置了默认路径,在我安装了所有必需的gem并加载了我的Rails应用程序之后,所有这些都开始工作了.

再次,错误条件是:

    Nginx +乘客;

    所述gempath被设置为/home//.gem~/.gemrc;

    一个init.d脚本creaded并添加到引导序列(update-rc.d nginx defaults);

    系统重启,服务器启动atomaticlally;

    http:// localhost/my_rails_app ;

    LoadError; 没有要加载的文件 - ; :29:在`require'中.

为什么Rubygems不能在自定义位置找到宝石,但可以在默认位置找到它们?这就是问题所在.

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有