RVM和缺少(但已安装)的宝石?

时间:2011-05-06 04:49:29

标签: ruby-on-rails ruby gem rvm

我正在尝试在OSX 10.6.7上安装RVM并开始使用它在每个项目的基础上对我的开发环境进行沙箱化,但是我遇到了一些问题。

我安装了RVM并为Rails 2.3.11创建了一个gemset,并确保所有需要的gem都安装了gem列表:

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)

但是当我启动服务器(脚本/服务器)时,我收到以下错误:

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:安装似乎没有帮助。 '这'给了我以下路径:

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 个答案:

答案 0 :(得分:7)

好的我明白了!

authlogic的新版本只与rails 3兼容。由于新的rvm gemset需要安装authlogic,它只是抓住了最新版本。要修复我只需要在我的environment.rb文件中包含rails 2的正确版本:

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

在这种情况下,错误消息有点误导。 Gem安装的不是rails 2支持的版本。

答案 1 :(得分:0)

相同的shell会话? RVM可能会让你失望,因为你可以在同一目录中的不同shell会话中使用不同的gemsets / rubies,所以如果你在一个选项卡/窗口/会话中运行服务器而不是你正在运行的那个which,它可能不准确。

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