2016-03-03 69 views
1

每當我cd到我的紅寶石項目目錄,我收到以下消息:接收郵件「紅寶石2.0.0-p647未安裝」

$ 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列表的輸出僅顯示一個紅寶石版本:

$ 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。

回答

3

發生了什麼事是rvm試圖使用2.0.0最新的補丁,這曾經是481,但現在647

首先,rvm合理的最新版本知道如何使用一個ruby指令從Gemfile,作爲documented here。所以即使沒有.ruby-versionrvm仍然知道你想要Ruby 2.0.0。

其次,由於Gemfile沒有指定補丁,所以rvm想要使用它知道的最新補丁documented here

所以,它聽起來就像你更新紅寶石rvm的主列表,大概說rvm get stable,現在rvm對待ruby '2.0.0'-p647,而不是-p481

另外:你從cd ..得到的消息是,因爲你的默認紅寶石是完全合格的ruby-2.0.0-p481,一旦沒有更多Gemfile,你回去使用默認的。

+0

根據你鏈接的文檔,我查看了'$ rvm_path/config/db'和'$ rvm_path/config/known',並在每個文件中將ruby-2.0.0-p647更改爲ruby-2.0.0-p481 。這消除了'647未安裝'消息,但是現在我進入和退出我的項目目錄時都會得到'regenerating wrappers' msg。因爲只安裝了一個ruby 2.0.0(現在只有一個已知),這看起來很奇怪。 – wildabeast

+0

如果您更改rvm的內部文件,我認爲所有投注都關閉。最好是安裝p647並使用它(最好在最新的補丁上,在這種情況下是低風險的),或者更改你的Gemfile,以便它堅持p481,這樣rvm就知道你想要的是什麼。 –

+0

這顯示瞭如何要求一個特定的補丁:http://bundler.io/v1.5/gemfile_ruby.html('ruby「2.0.0」,patchlevel:481')。 –