RVM和缺失的(但已安装)gem?

3
我正在尝试在OSX 10.6.7上安装RVM,并开始使用它来为每个项目创建开发环境,但是遇到了一些问题。
我已经安装了RVM,并为Rails 2.3.11创建了一个gemset,并确保所有需要的gem都已通过gem list安装:
actionmailer (2.3.11)
actionpack (2.3.11)
activemodel (3.0.7)
activerecord (3.0.7, 2.3.11)
activeresource (2.3.11)
activesupport (3.0.7, 2.3.11)
acts_as_commentable (3.0.1)
ajaxful_rating (2.2.8.2)
arel (2.0.9)
authlogic (3.0.2)
builder (2.1.2)
geokit (1.5.0)
i18n (0.5.0)
mysql (2.8.1)
rack (1.1.2)
rails (2.3.11)
rake (0.8.7)
rbbcode (0.1.11)
sanitize-url (0.1.4)
tzinfo (0.3.27)
will_paginate (2.3.15)

但是当我启动服务器(script/server)时,我会收到以下错误提示:
Missing these required gems:   
authlogic  

You're running:    
ruby 1.8.7.334 at /Users/Nick/.rvm/rubies/ruby-1.8.7-p334/bin/ruby 
rubygems 1.6.2 at /Users/Nick/.rvm/gems/ruby-1.8.7-p334, /Users/Nick/.rvm/gems/ruby-1.8.7-p334@global

Run `rake gems:install` to install the missing gems.

运行rake gems:install似乎没有帮助。 'which'给了我以下路径:

which ruby         
/Users/Nick/.rvm/rubies/ruby-1.8.7-p334/bin/ruby 
which gem 
/Users/Nick/.rvm/rubies/ruby-1.8.7-p334/bin/gem

这里发生了什么事情,有任何想法吗?

2个回答

7

好的,我明白了!

有一个新版本的authlogic,只能与rails 3兼容。由于安装authlogic所需的新rvm gemset只是获取了最新可用版本。要解决这个问题,我只需要在我的environment.rb文件中包含适用于rails 2的正确版本即可:

config.gem "authlogic", :version => '2.1.6'

这种情况下错误信息有些误导。实际上Gem已经安装,只是版本不被rails 2支持。

0

同一个 shell 会话?RVM 可能会让你感到困惑,因为你可以在同一个目录的不同 shell 会话中使用不同的 gemsets/rubies,所以如果你在除了运行 which 的选项卡/窗口/会话之外的地方运行服务器,它可能不准确。

此外,如果你正在使用 .rvmrc,请注意它只在你实际进入目录时加载,然后仅适用于当前的 shell 会话。如果你在创建 .rvmrc 时打开了另一个会话,它不会自动应用于该会话。


是的,同一个 shell 会话... 服务器出错后我做的第一件事就是运行 which 命令并检查路径... 我还没有涉及到 .rvmrc,只想先让 gemset 正常工作。 - Nick Faraday

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接