如何告诉RubyGems寻找其他地方?

时间:2013-07-12 21:17:16

标签: ruby

/usr/local/lib/site_ruby/1.8/rubygems/core_ext/kernel_require.rb:51:in `gem_original_require': no such file to load -- rails (LoadError)
from /usr/local/lib/site_ruby/1.8/rubygems/core_ext/kernel_require.rb:51:in `require'
from /usr/local/www/sl-exchange/lib/init.rb:4
from /usr/local/lib/site_ruby/1.8/rubygems/core_ext/kernel_require.rb:51:in `gem_original_require'
from /usr/local/lib/site_ruby/1.8/rubygems/core_ext/kernel_require.rb:51:in `require'
from /usr/local/www/sl-exchange/lib/exchange.rb:11
from /usr/lib/ruby/gems/1.8/gems/daemons-1.0.10/lib/daemons/application.rb:176:in `load'
from /usr/lib/ruby/gems/1.8/gems/daemons-1.0.10/lib/daemons/application.rb:176:in `start_load'
from /usr/lib/ruby/gems/1.8/gems/daemons-1.0.10/lib/daemons/application.rb:257:in `start'
from /usr/lib/ruby/gems/1.8/gems/daemons-1.0.10/lib/daemons/controller.rb:69:in `run'
from /usr/lib/ruby/gems/1.8/gems/daemons-1.0.10/lib/daemons.rb:139:in `run'
from /usr/lib/ruby/gems/1.8/gems/daemons-1.0.10/lib/daemons/cmdline.rb:105:in `call'
from /usr/lib/ruby/gems/1.8/gems/daemons-1.0.10/lib/daemons/cmdline.rb:105:in `catch_exceptions'
from /usr/lib/ruby/gems/1.8/gems/daemons-1.0.10/lib/daemons.rb:138:in `run'
from ./data_exchange_preview:15

但是当我在终端中进行rails --version时,我得到了:

root@vpc-db:/usr/local/www/sl-exchange# rails --version
Rails 2.1.1

which rails给了我/usr/bin/rails。我刚刚删除了ruby 1.9.1并在我的系统上安装了1.8.7,这可能就是原因。它曾经位于/ usr / local / bin

2 个答案:

答案 0 :(得分:1)

很难确切地说出你做了什么。

你说你删除了Ruby 1.9.1并安装了1.8.7(由于你从一个合理的当前版本转到一段时间内不支持的版本,它没有多大意义) #39;说 你是如何安装它的。

因为您使用的是Linux系统,但没有说出哪一个,我假设您没有从源代码执行此操作,这将自动包含所有必需的Rubygems代码。 1.8.7也是如此,但是当使用打包安装时,他们通常会分离出必要的组件,这使得Ruby运行起来更加困难。

因此,可以在不删除相关宝石的情况下删除Ruby二进制文件,然后再安装另一个Ruby版本,这会使与之关联的宝石孤立或至少不相关。这就是我的想法。

我的建议从您的计算机中删除所有Ruby软件包,然后为您的操作系统版本重新安装当前的Ruby。

然后,安装RVMrbenv将Ruby安装在主目录的沙箱中,并保持系统Ruby单独使用。 RVM和rbenv使得安装一个或多个Ruby版本变得非常容易。每个人都有自己独立的宝石。

在RVM和rbenv之间,更简单的是rbenv。它没有所有的命令和功能,也没有RVM那么复杂,但是当你开发并且需要针对多个Rubies进行测试时,要么比从包中安装要好。如果您使用RVM,阅读整个安装方向,以便了解您的选项,然后为单用户安装。

在我管理的系统上,我只使用包在测试和生产主机上安装单个Ruby。我们的共享开发主机和桌面上的开发人员使用RVM或rbenv来提高便利性和灵活性。

答案 1 :(得分:0)

添加来源:

gem sources -a URI

查看当前环境

gem env