切换到 ruby 项目目录时收到消息 'ruby-2.0.0-p647 is not installed'

Receiving message 'ruby-2.0.0-p647 is not installed' when switching to ruby project directory

每当我 cd 进入我的 ruby 项目目录时,我都会收到以下消息:

$ cd millpool/
ruby-2.0.0-p647 is not installed.
To install do: 'rvm install ruby-2.0.0-p647'

当我 cd 退出时,我收到:

$ cd ..
usage: 'rvm alias [action] [alias_name] [ruby_string]'
Regenerating ruby-2.0.0-p481 wrappers........

我的项目 Gemfile 中有以下行:

ruby "2.0.0"

我的项目目录中既没有 .rvmrc 也没有 .ruby-version 文件。 rvm list 的输出只显示一个 ruby version:

$ rvm list
rvm rubies
=* ruby-2.0.0-p481 [ x86_64 ]
# => - current
# =* - current && default
#  * - default

所以某处有一个配置告诉 rvm 为 millpool/ 中的项目使用 2.0.0-p647,但我找不到它在哪里。值得注意的是,这是在一个 cygwin 实例中。它是从出现问题的 cygwin 目录的备份中恢复的。该应用程序使用 2.0.0p-481 仍然可以正常运行。

发生的事情是 rvm 正在尝试使用 2.0.0 的最新补丁,以前是 481,现在是 647。

首先,rvm 的较新版本知道如何使用 Gemfile 中的 ruby 指令,如 documented here。所以即使没有 .ruby-versionrvm 仍然知道你想要 Ruby 2.0.0.

其次,由于 Gemfile 没有指定补丁,rvm 希望使用它知道的最新补丁,documented here

听起来你更新了 rvm 的红宝石主列表,可能是说 rvm get stable,现在 rvmruby '2.0.0' 视为 -p647 而不是 -p481.

此外:您从 cd .. 收到的消息是因为您的默认 ruby 是完全合格的 ruby-2.0.0-p481,一旦没有 Gemfile,您返回使用您的默认值。