Sha*_*oke 5 ruby rubygems ruby-on-rails
每次我启动我的Rails应用程序时,我都会得到具有以下输出的LoadError.
在Rails 2.3.8上:
no such file to load -- sqlite3/sqlite3_native <internal:lib/rubygems/custom_require>:29:in `require'
在Rails 3.0.0上:
no such file to load -- bundler <internal:lib/rubygems/custom_require>: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/<usernam>/.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/<username>/.gem
- RUBY EXECUTABLE: /usr/local/bin/ruby
- EXECUTABLE DIRECTORY: /home/<username>/.gem/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-linux
- GEM PATHS:
- /home/<username>/.gem
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- "gem" => "--no-ri --no-rdoc"
- :gemhome => "/home/<username>/.gem"
- :gempath => ["/home/<username>/.gem"]
- REMOTE SOURCES:
- http://rubygems.org/
更新
我解决了这个问题.它的来源是我定义了一个自定义宝石路径.那是我在~/.gemrc文件中添加了以下几行:
:gemhome: /home/<username>/.gem :gempaths: - /home/<username>/.gem
因此,我的所有宝石都放在指定的目录中,但不是默认目录.出于某种原因,Rubygems不会在那里找到它并且会出现异常.
当我从文件中删除这些行时,为Rubygems设置了默认路径,在我安装了所有必需的gem并加载了我的Rails应用程序之后,所有这些都开始工作了.
再次,错误条件是:
/home/<unprivileged_user>/.gem在~/.gemrc;init.d脚本creaded并添加到引导序列(update-rc.d nginx defaults);为什么Rubygems不能在自定义位置找到宝石,但可以在默认位置找到它们?这就是问题所在.
检查您的系统以找到红宝石和宝石的安装位置(您可以通过“which ruby”和“which gem”来完成此操作)。通常,它们安装在同一文件夹中(/usr/bin 或 /usr/local)。如果它们位于不同的位置,则可能会出现加载错误。只是一个建议。
| 归档时间: |
|
| 查看次数: |
10549 次 |
| 最近记录: |