【问题标题】:can't install new Rails app; RVM 'global' gemset missing from main directory but visible in app sub-directories无法安装新的 Rails 应用程序;主目录中缺少 RVM“全局”gemset 但在应用程序子目录中可见
【发布时间】:2013-11-01 01:15:43
【问题描述】:

当我尝试在保存所有 Rails 应用程序的目录中创建新的 Rails 应用程序时,我收到以下错误:

Rails is not currently installed on this system. To get the latest version, simply type:

    $ sudo gem install rails

You can then rerun your "rails" command.

我最近一直在研究 RVM 教程,所以我认为它可能与我创建的 gemset 有关。我输入了“rvm gemset list”,发现以下内容:

gemsets for system (found in /Users/rickthomas/.rvm/gems/system)
=> (default)
   *

但奇怪的是,我 cd'ed 进入其中一个应用程序的目录,然后运行相同的命令,发现:

gemsets for ruby-1.9.3-p429 (found in /Users/rickthomas/.rvm/gems/ruby-1.9.3-p429)
=> (default)
   global

当我在主目录中运行“rails --version”命令时,我会收到运行“sudo gem install rails”的消息,但是当我从 app 目录中运行相同的命令时,我会收到以下信息:

Rails 3.2.12

有点困惑为什么我突然不能创建一个新的 Rails 应用程序,因为我创建的最后一个应用程序是今天早上,在我完成 RVM 教程的第二天,并且从那时起没有对 gemset 进行任何更改。

【问题讨论】:

    标签: ruby-on-rails terminal rvm gemset


    【解决方案1】:

    看起来您的“系统”红宝石没有安装 Rails gem。无论如何,您可能不想使用系统红宝石。你试试这个怎么样:

    rvm use 1.9.3      # switch to your Ruby 1.9.3 that the other app used
    gem list           # make sure rails is listed
    gem install rails  # (only if rails was not listed)
    rails new myapp
    

    你观察到的“奇怪的东西”没有什么奇怪的。当您 cd 进入一个目录时,RVM 会查看该目录中的 .rvmrc、.ruby-version 和 .ruby-gemset 等文件,并自动更改您的环境以匹配。您可以运行“rvm info”来查看您当前所处的环境类型(我通常关注 GEM_HOME 和 GEM_PATH 变量)。在这种情况下,cd 到 Rails 应用程序目录会导致 RVM 将您切换到 Ruby 1.9.3,这就是您安装 rails gem 的 Ruby。对我来说似乎很正常。

    【讨论】:

    • 谢谢。知道为什么我以前能够在父目录中生成 Rails 应用程序吗?我不记得使用“rvm use”命令切换到以前的版本。
    • 您在创建之前的应用程序时可能确实在终端中运行了“rvm use 1.9.3”,因此您将终端设置为通常使用 1.9.3 而不是系统 ruby​​。或者,也许您运行了“rvm install 1.9.3”,它会自动为您切换到新的 ruby​​?
    • 嗯,无论如何我只是运行了'rvm use 1.9.3 --default',希望我不会再遇到这个问题,至少出于这个原因。这听起来合乎逻辑吗?
    • 是的,这听起来很合乎逻辑。
    猜你喜欢
    • 2012-11-09
    • 1970-01-01
    • 1970-01-01
    • 2011-03-22
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多