【问题标题】:How can I start my Ruby environment from scratch?如何从头开始我的 Ruby 环境?
【发布时间】:2011-09-29 21:25:12
【问题描述】:

我一直在尝试升级我的 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': Could not find rails (>= 0) amongst [rake-0.8.7, rake-0.8.7, rubygems-update-1.8.5] (Gem::LoadError) from /Users/Moshe/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:256:into_spec' 来自 /Users/Moshe/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems.rb:1182:in gem' from /Users/Moshe/.rvm/rubies/ruby-1.9.2-p180/bin/rails:18:in'

我能做些什么来解决这个问题?我想恢复到我的 Mac 附带的 ruby​​ 版本。

编辑:我在 Snow Leopard 10.6.8)

编辑2:

我现在已经让 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 以分离

=> Ctrl-C 关闭服务器

退出

/Users/Moshe/Development/Ruby/hello/config/initializers/new_rails_defaults.rb:14:ActionDispatch::Routing:Module (NoMethodError) 的未定义方法“generate_best_match=”

来自 /Library/Ruby/Gems/1.8/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:235:in `load'

来自 /Library/Ruby/Gems/1.8/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:235:in `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:in `new_constants_in'

来自 /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:235:in `load'

来自 /Library/Ruby/Gems/1.8/gems/railties-3.0.9/lib/rails/engine.rb:201

来自 /Library/Ruby/Gems/1.8/gems/railties-3.0.9/lib/rails/engine.rb:200:in `each'

来自 /Library/Ruby/Gems/1.8/gems/railties-3.0.9/lib/rails/engine.rb:200

来自 /Library/Ruby/Gems/1.8/gems/railties-3.0.9/lib/rails/initializable.rb:25:in `instance_exec'

来自 /Library/Ruby/Gems/1.8/gems/railties-3.0.9/lib/rails/initializable.rb:25:in `run'

来自 /Library/Ruby/Gems/1.8/gems/railties-3.0.9/lib/rails/initializable.rb:50:in `run_initializers'

来自 /Library/Ruby/Gems/1.8/gems/railties-3.0.9/lib/rails/initializable.rb:49:in `each'

来自 /Library/Ruby/Gems/1.8/gems/railties-3.0.9/lib/rails/initializable.rb:49:in `run_initializers'

来自 /Library/Ruby/Gems/1.8/gems/railties-3.0.9/lib/rails/application.rb:134:in `initialize!'

来自 /Library/Ruby/Gems/1.8/gems/railties-3.0.9/lib/rails/application.rb:77:in `send'

来自 /Library/Ruby/Gems/1.8/gems/railties-3.0.9/lib/rails/application.rb:77:in `method_missing'

来自 /Users/Moshe/Development/Ruby/hello/config/environment.rb:5

来自 /Users/Moshe/Development/Ruby/hello/config.ru:3:in `require'

来自 /Users/Moshe/Development/Ruby/hello/config.ru:3

来自 /Library/Ruby/Gems/1.8/gems/rack-1.2.3/lib/rack/builder.rb:46:in `instance_eval'

来自 /Library/Ruby/Gems/1.8/gems/rack-1.2.3/lib/rack/builder.rb:46:in `initialize'

来自 /Users/Moshe/Development/Ruby/hello/config.ru:1:in `new'

来自 /Users/Moshe/Development/Ruby/hello/config.ru:1

【问题讨论】:

  • 这会删除 rvm 安装的 rubies 吗?库存红宝石安装怎么样?
  • 据我了解,它将删除 rvm 安装的所有 ruby​​ 版本以及 gem。 Max OSX 自带的原始 ruby​​ 无法轻易删除。
  • @Brian - 根据该答案删除 Ruby 会删除 rvm 但现在我无法访问默认的 ruby​​!
  • 您的系统上是否存在/usr/bin/ruby?如果是这样,也许您的 $PATH 变量需要更新?

标签: ruby-on-rails ruby runtime installation


【解决方案1】:

我会尝试从头开始。检查您安装了哪些 rvms:

$rvm list

你应该得到这样的东西:

rvm rubies

   jruby-1.5.5 [ x86_64-java ]
   ree-1.8.7-2010.02 [ x86_64 ]
   ruby-1.8.6-p399 [ x86_64 ]
   ruby-1.8.7-p299 [ x86_64 ]
=> ruby-1.8.7-p302 [ x86_64 ]
   ruby-1.9.2-p0 [ x86_64 ]

对每个部分执行 rvm 卸载:

$rvm uninstall 1.8.7
$rvm uninstall 1.9.2

安装 Ruby 1.8.7:

$ rvm install 1.8.7

安装最新的 Ruby 1.9.2:

$ rvm install 1.9.2

设置您的默认值(或 1.8.7,如果您愿意):

$ rvm use 1.9.2 --default

安装 PostgreSQL 和 SQLite gems(假设是雪豹):

$ env ARCHFLAGS="-arch x86_64" gem install pg sqlite3-ruby

安装 Rails 3(包括 Bundler):

$ gem install rails

如果您在 Rails 2x 项目中:

$rvm use 1.8.7

如果您在 Rails 3 项目中:

$rvm use 1.9.2

当您在每个 rvm 中时,如果您使用的是 bundler,请通过“bundle install”加载与项目关联的 gem,如果您将所有内容都转储到环境中,请通过“rake gems:install”加载与项目相关的 gem。rb

【讨论】:

  • 如果你没有设置你的权限,你可以sudo它。如果它没有权限,它将默认进入您的股票 ruby​​ 目录。
  • 如果您正确安装了 rvm,它不应再进入您的库存目录。因此,在重新开始之前使用卸载和“rm -rf .rvm .rvmrc”删除所有 rvm 跟踪
  • 我现在有正常工作的 Rails,但尝试运行服务器时会出现类似 undefined method generate_best_match='` 的问题
  • 你的初始化程序:new_rails_defaults.rb 有一行看起来像:ActionController::Routing.generate_best_match = false。如果您在 rails 3 上,则可以将其删除(在 /config/initializers/new_rails_defaults.rb 中)
  • 我实际上是在旧版本的 Rails 上生成项目的。这就是问题所在。
【解决方案2】:
rm -rf .rvm .rvmrc

如果您想确保从头开始,请删除项目目录中的 .rvmrc 文件。

除非您已经安装了系统范围的 ruby​​,除了通过 rvm 安装一个之外,您将不再有“ruby”命令,直到您再次重新安装 rvm。

所以:

bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)

重新安装 rvm。现在一切都应该恢复到默认安装。

【讨论】:

    【解决方案3】:

    我没有删除任何 .rvm 和 .rvmrc 文件。但是我的问题已经解决了。我不知道它是如何解决的。但是我做了什么,我告诉你。首先,我在我的 Gemfile 中使用了不稳定版本的 rails gem。这就是问题发生的原因。

    gem 'rails', :path => '/home/user/life/rails'  #this is an unstable rails 4.0.0 beta
    
     #gem 'rails', '3.2.8' 
    
    user@sandip:~/life/samplelogin$ rails c
    /home/user/.rvm/rubies/ruby-1.9.3-p362/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find railties (>= 0) amongst [activerecord-deprecated_finders-0.0.1, arel-3.0.2, atomic-1.0.1, builder-3.1.4, bundler-1.2.3, bundler-1.2.3, erubis-2.7.0, hike-1.2.1, i18n-0.6.1, json-1.7.5, mail-2.5.3, mime-types-1.19, minitest-4.3.3, multi_json-1.5.0, mysql2-0.3.11, polyglot-0.3.3, rack-1.4.1, rack-test-0.6.2, rake-10.0.3, rake-0.9.2, rdoc-3.12, sprockets-2.8.2, sprockets-rails-2.0.0.rc1, thor-0.16.0, thread_safe-0.1.0, tilt-1.3.3, treetop-1.4.12, tzinfo-0.3.35] (Gem::LoadError)
        from /home/user/.rvm/rubies/ruby-1.9.3-p362/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec'
        from /home/user/.rvm/rubies/ruby-1.9.3-p362/lib/ruby/site_ruby/1.9.1/rubygems.rb:1210:in `gem'
        from /home/user/.rvm/gems/ruby-1.9.3-p362/bin/rails:18:in `<main>'
    

    然后下一步我做了什么,我只是从本地文件夹中评论 gem。

     #gem 'rails', :path => '/home/user/life/rails'  #this is an unstable rails 4.0.0 beta'
    
    gem 'rails', '3.2.8'
    

    然后运行捆绑安装

    然后做

    user@sandip:~/life/samplelogin$ rails c
    Loading development environment (Rails 3.2.8)
    1.9.3p362 :001 >
    

    【讨论】:

      【解决方案4】:

      【讨论】:

        【解决方案5】:

        在重新开始之前,先看看 RBENV 作为 RVM 的替代方案。它更清洁,更易于使用。

        【讨论】:

          猜你喜欢
          • 2010-09-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-06-16
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多