0
/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

but when I do a rails --version in the terminal I get:

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

and which rails gives me /usr/bin/rails. I just deleted ruby 1.9.1 and installed 1.8.7 on my system so that might be why. It used to be located in /usr/local/bin

4

2 回答 2

1

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

你说你删除了 Ruby 1.9.1 并安装了 1.8.7(这没有多大意义,因为你从一个合理的当前版本变成了一段时间不受支持的版本),你没有说你是如何安装它。

因为您使用的是 Linux 系统,但没有说是哪一个,所以我假设您没有从源代码中进行操作,因为它会自动包含所有必要的 Rubygems 代码。1.8.7 也是如此,但是当使用打包安装时,它们通常会分离出必要的组件,从而使 Ruby 更难运行。

因此,可以在不删除相关 gem 的情况下删除 Ruby 二进制文件,然后安装另一个 Ruby 版本,这会使与之关联的 gem 成为孤立的或至少不相关的。这就是我认为你所做的。

我的建议是从您的机器上删除所有 Ruby 包,然后为您的操作系统版本重新安装当前的 Ruby。

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

在 RVM 和 rbenv 之间,比较简单的是 rbenv。它没有所有的命令和特性,也不像 RVM 那样复杂,但是当你在开发并且需要针对多个 Ruby 进行测试时,两者都比从一个包中安装要好。如果您使用 RVM,请阅读整个安装说明,以便了解您的选择,然后为单用户安装。

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

于 2013-07-12T21:44:04.053 回答
0

要添加源:

gem sources -a URI

查看当前环境

gem env
于 2013-07-12T21:49:05.770 回答