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

Whenever I cd into my ruby project directory, I receive the following message:

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

and when I cd back out, I receive:

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

I have the following line in my project Gemfile:

ruby "2.0.0"

There is neither a .rvmrc or .ruby-version file in my project directory. The output of rvm list shows only one ruby version:

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

So somewhere is a configuration telling rvm to use 2.0.0-p647 for the project in millpool/, but I can't find where that is. Noteworthy that this is within a cygwin instance. It was restored from a backup of the cygwin directory, which is when the issue appeared. The app still runs fine using 2.0.0p-481.

Answers


What's happening is that rvm is trying to use the latest patch for 2.0.0, which used to be 481 but is now 647.

First, reasonably-recent versions of rvm know how to use a ruby directive from a Gemfile, as documented here. So even though there is no .ruby-version, rvm still knows you want Ruby 2.0.0.

Second, since the Gemfile doesn't specify a patch, rvm wants to use the most recent patch it's aware of, documented here.

So it sounds like you updated rvm's master list of rubies, probably by saying rvm get stable, and now rvm treats ruby '2.0.0' as -p647 instead of -p481.

Also: the messages you get from cd .. are because your default ruby is the fully-qualified ruby-2.0.0-p481, and once there is no more Gemfile, you go back to using your default.


Need Your Help

Elasticsearch fails in parsing datetime field coming from pymongo as object

python mongodb elasticsearch pymongo

I am trying to stream data from a mongoDB to Elasticsearch using both pymongo and the Python client elasticsearch.