2011-09-25 91 views
2

我试图得到了RVM加快。为什么应用程序可以在系统环境中正常运行,但不能在RVM下运行?

我有一个Rails 2个应用程序,我的系统中正常工作。换句话说,它在我安装RVM之前就工作了,如果我“关闭RVM”与$ rvm use system一起工作。

在RVM我安装在同一红宝石版本和补丁级别为我的系统红宝石,然后我创建了一个宝石,并安装所有的应用程序使用的gem版本。

然而,在RVM当我运行rake gems我得到这样的结果......

$ rake gems 
rake/rdoctask is deprecated. Use rdoc/task instead (in RDoc 2.4.2+) 
rake aborted! 
undefined method `name' for "actionmailer":String 

Tasks: TOP => environment 
(See full trace by running task with --trace) 

随着--trace ...

$ rake gems --trace 
rake/rdoctask is deprecated. Use rdoc/task instead (in RDoc 2.4.2+) 
** Invoke gems (first_time) 
** Invoke gems:base (first_time) 
** Execute gems:base 
** Invoke environment (first_time) 
** Execute environment 
rake aborted! 
undefined method `name' for "actionmailer":String 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rails-2.3.11/lib/rails/gem_dependency.rb:277:in `==' 
/Users/username/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/site_ruby/1.8/rubygems/dependency.rb:217:in `===' 
/Users/username/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/site_ruby/1.8/rubygems/dependency.rb:217:in `matching_specs' 
/Users/username/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `find_all' 
/Users/username/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/site_ruby/1.8/rubygems/specification.rb:410:in `each' 
/Users/username/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/site_ruby/1.8/rubygems/specification.rb:409:in `each' 
/Users/username/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/site_ruby/1.8/rubygems/dependency.rb:216:in `find_all' 
/Users/username/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/site_ruby/1.8/rubygems/dependency.rb:216:in `matching_specs' 
/Users/username/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/site_ruby/1.8/rubygems/dependency.rb:238:in `to_specs' 
/Users/username/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/site_ruby/1.8/rubygems/dependency.rb:256:in `to_spec' 
/Users/username/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/site_ruby/1.8/rubygems.rb:1210:in `gem' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rails-2.3.11/lib/rails/gem_dependency.rb:75:in `add_load_paths' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rails-2.3.11/lib/initializer.rb:301:in `add_gem_load_paths' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rails-2.3.11/lib/initializer.rb:301:in `each' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rails-2.3.11/lib/initializer.rb:301:in `add_gem_load_paths' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rails-2.3.11/lib/initializer.rb:132:in `process' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rails-2.3.11/lib/initializer.rb:113:in `send' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rails-2.3.11/lib/initializer.rb:113:in `run' 
/Users/username/project/my_app/config/environment.rb:7 
/Users/username/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require' 
/Users/username/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/activesupport-2.3.11/lib/active_support/dependencies.rb:182:in `require' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/activesupport-2.3.11/lib/active_support/dependencies.rb:547:in `new_constants_in' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/activesupport-2.3.11/lib/active_support/dependencies.rb:182:in `require' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rails-2.3.11/lib/tasks/misc.rake:4 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rake-0.9.2/lib/rake/task.rb:205:in `call' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rake-0.9.2/lib/rake/task.rb:205:in `execute' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rake-0.9.2/lib/rake/task.rb:200:in `each' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rake-0.9.2/lib/rake/task.rb:200:in `execute' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rake-0.9.2/lib/rake/task.rb:158:in `invoke_with_call_chain' 
/Users/username/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/1.8/monitor.rb:242:in `synchronize' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rake-0.9.2/lib/rake/task.rb:151:in `invoke_with_call_chain' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rake-0.9.2/lib/rake/task.rb:144:in `invoke' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rails-2.3.11/lib/tasks/gems.rake:17 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rake-0.9.2/lib/rake/task.rb:205:in `call' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rake-0.9.2/lib/rake/task.rb:205:in `execute' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rake-0.9.2/lib/rake/task.rb:200:in `each' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rake-0.9.2/lib/rake/task.rb:200:in `execute' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rake-0.9.2/lib/rake/task.rb:158:in `invoke_with_call_chain' 
/Users/username/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/1.8/monitor.rb:242:in `synchronize' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rake-0.9.2/lib/rake/task.rb:151:in `invoke_with_call_chain' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rake-0.9.2/lib/rake/task.rb:176:in `invoke_prerequisites' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rake-0.9.2/lib/rake/task.rb:174:in `each' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rake-0.9.2/lib/rake/task.rb:174:in `invoke_prerequisites' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rake-0.9.2/lib/rake/task.rb:157:in `invoke_with_call_chain' 
/Users/username/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/1.8/monitor.rb:242:in `synchronize' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rake-0.9.2/lib/rake/task.rb:151:in `invoke_with_call_chain' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rake-0.9.2/lib/rake/task.rb:144:in `invoke' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rake-0.9.2/lib/rake/application.rb:112:in `invoke_task' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rake-0.9.2/lib/rake/application.rb:90:in `top_level' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rake-0.9.2/lib/rake/application.rb:90:in `each' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rake-0.9.2/lib/rake/application.rb:90:in `top_level' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rake-0.9.2/lib/rake/application.rb:84:in `top_level' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rake-0.9.2/lib/rake/application.rb:62:in `run' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rake-0.9.2/lib/rake/application.rb:59:in `run' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rake-0.9.2/bin/rake:32 
/Users/username/.rvm/gems/[email protected]_app_rails_2/bin/rake:19:in `load' 
/Users/username/.rvm/gems/[email protected]_app_rails_2/bin/rake:19 
Tasks: TOP => environment 

当我尝试运行应用程序,我得到...

$ script/server 
=> Booting WEBrick 
=> Rails 2.3.11 application starting on http://0.0.0.0:3000 
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01. 
Gem.source_index called from /Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rails-2.3.11/lib/rails/gem_dependency.rb:21. 
NOTE: Gem::SourceIndex#refresh! is deprecated with no replacement. It will be removed on or after 2011-11-01. 
Gem::SourceIndex#refresh! called from /Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rails-2.3.11/lib/rails/vendor_gem_source_index.rb:34. 
NOTE: Gem::SourceIndex#load_gems_in is deprecated with no replacement. It will be removed on or after 2011-11-01. 
Gem::SourceIndex#load_gems_in called from /Users/username/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:322. 
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01. 
Gem::SourceIndex#add_spec called from /Users/username/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:127. 

[ ... "NOTE: Gem::SourceIndex" thing repeats a bunch of times ... ] 

/Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rails-2.3.11/lib/rails/gem_dependency.rb:277:in `==': undefined method `name' for "actionmailer":String (NoMethodError) 
    from /Users/username/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/site_ruby/1.8/rubygems/dependency.rb:217:in `===' 
    from /Users/username/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/site_ruby/1.8/rubygems/dependency.rb:217:in `matching_specs' 
    from /Users/username/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `find_all' 
    from /Users/username/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/site_ruby/1.8/rubygems/specification.rb:410:in `each' 
    from /Users/username/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/site_ruby/1.8/rubygems/specification.rb:409:in `each' 
    from /Users/username/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/site_ruby/1.8/rubygems/dependency.rb:216:in `find_all' 
    from /Users/username/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/site_ruby/1.8/rubygems/dependency.rb:216:in `matching_specs' 
    from /Users/username/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/site_ruby/1.8/rubygems/dependency.rb:238:in `to_specs' 
    from /Users/username/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/site_ruby/1.8/rubygems/dependency.rb:256:in `to_spec' 
    from /Users/username/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/site_ruby/1.8/rubygems.rb:1210:in `gem' 
    from /Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rails-2.3.11/lib/rails/gem_dependency.rb:75:in `add_load_paths' 
    from /Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rails-2.3.11/lib/initializer.rb:301:in `add_gem_load_paths' 
    from /Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rails-2.3.11/lib/initializer.rb:301:in `each' 
    from /Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rails-2.3.11/lib/initializer.rb:301:in `add_gem_load_paths' 
    from /Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rails-2.3.11/lib/initializer.rb:132:in `process' 
    from /Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rails-2.3.11/lib/initializer.rb:113:in `send' 
    from /Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rails-2.3.11/lib/initializer.rb:113:in `run' 
    from /Users/username/project/my_app/config/environment.rb:7 
    from /Users/username/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require' 
    from /Users/username/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require' 
    from /Users/username/.rvm/gems/[email protected]_app_rails_2/gems/activesupport-2.3.11/lib/active_support/dependencies.rb:182:in `require' 
    from /Users/username/.rvm/gems/[email protected]_app_rails_2/gems/activesupport-2.3.11/lib/active_support/dependencies.rb:547:in `new_constants_in' 
    from /Users/username/.rvm/gems/[email protected]_app_rails_2/gems/activesupport-2.3.11/lib/active_support/dependencies.rb:182:in `require' 
    from /Users/username/.rvm/gems/[email protected]_app_rails_2/gems/rails-2.3.11/lib/commands/server.rb:84 
    from /Users/username/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require' 
    from /Users/username/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require' 
    from script/server:3 
+1

我有,你有宝石在你的系统安装和RVM是不同的强烈的感觉,而这导致了错误。你可以检查你在两个ruby下使用相同版本的rails和rubygems吗? – Augusto

+0

Rails版本:检查。个人宝石版本:检查。系统RubyGems版本:1.3.7。 RVM RubyGems版本:1.8.10。这可能吗?如果是这样,我可以在RVM下降级RubyGems吗? – Ethan

+1

这听起来**高度可能,特别是因为stacktrace的第二条顶线来自'gem_dependency.rb'。 RVM上的这个页面介绍了如何使用不同的[RubyGems](http://beginrescueend.com/rubies/rubygems/)版本。 – Augusto

回答

8

是的,RubyGems最近有一个非常快速的发展速度,并不完全向后兼容。尝试:

rvm rubygems 1.3.7 

gem install rubygems -v 1.3.7 

您可能必须清除出宝石重新安装RubyGems的...

如果你使用RVM,您可以用下面的命令改变了RubyGems的版本

+0

我也得到了这些警告。这真的很烦人。似乎不会很快消失。这是捆绑软件需要修复的问题还是宝石作者自己? – d11wtq

+0

谢谢,DGM。其实我觉得这可能是最好使用[RVM内置的RubyGems的版本管理能力(http://beginrescueend.com/rubies/rubygems)的奥古斯托链接到上面。但你说得对,那是问题所在。 – Ethan

+0

上午使用rvm [email protected]。随着rvm ruby​​gems 1.3.7一切工作完美。谢谢 –

相关问题