我一直试图在我的MacBook上升级我的rails环境而且我搞砸了,但我不确定是什么 . 是否可以完全删除RVM,Ruby和Rails并从头开始?我对这一切都应该如何工作感到很困惑 .
我目前通过RVM安装了Ruby 1.8.7和1.9.2 . 我已经将rails升级到3.0.9但它现在拒绝工作,引用rake的一些错误 .
/Users/Moshe/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in to_specs':找不到rails(> = 0)来自/Users/Moshe/.rvm/rubies/ruby-1.9.2-p180/lib/ruby的[rake-0.8.7,rake-0.8.7,rubygems-update-1.8.5](Gem :: LoadError) /site_ruby/1.9.1/rubygems/dependency.rb:256:into_spec'from /Users/Moshe/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems.rb: 1182:在宝石中来自/Users/Moshe/.rvm/rubies/ruby-1.9.2-p180/bin/rails:18:in'
我该怎么做才能解决这个问题?我想恢复我的Mac附带的ruby版本 .
( Edit: 我在雪豹10.6.8)
Edit2:
我现在已经得到rvm来运行ruby 1.9.2和rails 3.0.9但是,尝试使用 rails server
启动服务器会返回以下内容:
AppMachineMobile:你好Moshe $ rails服务器=>启动WEBrick => Rails 3.0.9应用程序在http://0.0.0.0:3000开始开发=>调用-d to detach => Ctrl-C关闭服务器退出/ Users / Moshe / Development / Ruby / hello / config / initializers / new_rails_defaults.rb:14:undefined方法
generate_best_match ='for ActionDispatch :: Routing:Module(NoMethodError)from /Library/Ruby/Gems/1.8/gems/activesupport- 3.0.9 / lib / active_support / dependencies.rb:235:来自/Library/Ruby/Gems/1.8/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:235:in'load'中的
load'来自/Library/Ruby/Gems/1.8/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:225:in,load_dependency'来自/Library/Ruby/Gems/1.8/gems/activesupport-3.0.9/ lib / active_support / dependencies.rb:596:在来自/ Library /的/Library/Ruby/Gems/1.8/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:225:in,load_dependency'的new_constants_in'中红宝石/宝石/ 1.8 /宝石/的ActiveSupport-3.0.9 / lib目录/ active_support / dependenci es.rb:235:来自/Library/Ruby/Gems/1.8/gems/railties-3.0.9/lib/rails/engine.rb:20的
load'来自/Library/Ruby/Gems/1.8/gems/railties -3.0.9 / lib / rails / engine.rb:200:来自/ Library /的/Library/Ruby/Gems/1.8/gems/railties-3.0.9/lib/rails/engine.rb:200中的each' Ruby / Gems / 1.8 / gems / railties-3.0.9 / lib / rails / initializable.rb:25:in / instance_exec from from /Library/Ruby/Gems/1.8/gems/railties-3.0.9/lib/rails/ initializable.rb:25:来自/Library/Ruby/Gems/1.8/gems/railties-3.0.9/lib/rails/initializable.rb:50:in的'run'来自/ Library / Ruby / Gems /的
run_initializers' 1.8 / gems / railties-3.0.9 / lib / rails / initializable.rb:49:in / each'from /Library/Ruby/Gems/1.8/gems/railties-3.0.9/lib/rails/initializable.rb: 49:来自/Library/Ruby/Gems/1.8/gems/railties-3.0.9/lib/rails/application.rb:134的run_initializers':'initialize!'来自/Library/Ruby/Gems/1.8/gems/railties-3.0.9/lib/rails/application.rb:77:in
send'from /Library/Ruby/Gems/1.8/gems/railties-3.0.9/ lib / rails / application.rb:77:来自/Users/Moshe/Development/Ruby/hello/config/environment.rb:5的method_missing'来自/Users/Moshe/Development/Ruby/hello/config.ru:3 :来自/Users/Moshe/Development/Ruby/hello/config.ru:3的
require'来自/Library/Ruby/Gems/1.8/gems/rack-1.2.3/lib/rack/builder.rb:46:来自/Library/Ruby/Gems/1.8/gems/rack-1.2.3/lib/rack/builder.rb:46的instance_eval'来自/ Users / Moshe / Development / Ruby / hello / config的
initialize' . ru:1:来自/Users/Moshe/Development/Ruby/hello/config.ru:1的“新”
5 回答
我会尝试从头开始 . 检查您安装的rvms:
你应该得到这样的东西:
在每个部分上执行rvm卸载:
安装Ruby 1.8.7:
安装最新的Ruby 1.9.2:
设置默认值(如果你想要,则设置为1.8.7):
安装PostgreSQL和SQLite宝石(假设雪豹):
安装Rails 3(包括Bundler):
如果您在rails 2x项目中:
如果您在rails 3项目中:
当你在每个rvm中时,如果你正在使用bundler,则通过'bundle install'加载与项目关联的gem,如果你把所有东西都放到你的环境中,你可以加载'rake gems:install'.rb
然后删除项目目录中的.rvmrc文件我想确保你从头开始 .
除非你安装了一个系统范围的ruby,除了通过rvm安装一个,你再也没有“ruby”命令,直到你再次重新安装rvm .
所以:
重新安装rvm . 现在一切都应该回到默认安装 .
我没有删除任何.rvm和.rvmrc文件 . 但我的问题已经解决了 . 我不知道它是如何解决的 . 但是我告诉你的是我做了什么 . 首先我在我的Gemfile中使用了不稳定版本的rails gem . 这就是问题发生的原因 .
接下来我做了什么,我只是从本地文件夹中评论gem .
然后运行bundle install
然后做
这可能会有所帮助:
http://blog.parsalabs.com/blog/2013/08/27/setting-up-a-ruby-on-rails-4-development-environment-on-a-clean-mac-os-x-installation/
rbenv是管理红宝石的绝佳工具 .
在重新开始之前,请先看看RBENV作为RVM的替代方案 . 它更清洁,更容易使用 .