2010-08-20 73 views
14

當ree是默認vm(在Snow Leopard上)時,如何在rvm下更新rubygems?我做:如何使用rvm和ree更新rubygems?

$ rvm ree gem update --system 

這導致事情看起來像一切正常:

Updating RubyGems 
Updating rubygems-update 
Successfully installed rubygems-update-1.3.7 
Updating RubyGems to 1.3.7 
Installing RubyGems 1.3.7 
RubyGems 1.3.7 installed 

[...] 

RubyGems installed the following executables: 
     /Users/douglassellers/.rvm/rubies/ree-1.8.7-2010.02/bin/gem 

但是當我運行gem --version還在說1.3.5。在寶石版的ree版本中做一個寶石。

任何人都知道如何讓rubygems使用RVM進行更新?

+3

你驗證稀土?例如'rvm使用ree'然後'gem --version'。我知道這聽起來很愚蠢,但是我之前遇到過一個錯誤:-( – Brian 2010-08-20 23:39:27

+0

我已經驗證了這一點。最奇怪的是,ruby寶石似乎認爲它正在更新正確的文件,它說更新〜/ .rvm/rubies /ree-1.8.7-2010.02/bin/gem,當我在〜/ .rvm/rubies/ree-1.8.7-2010.02/bin/gem中指定「哪個寶石」時,必須有另一個版本的寶石在需要的路徑中,我看不到一個 – 2010-08-23 18:06:46

回答

17

的問題,我認爲,在初始命令(或你所期望的那個命令做):

$ rvm ree gem update --system 

這告訴RVM傳遞gem update --systemreegem,但它不切換到特定的Ruby解釋器。您繼續使用您在該shell中設置的任何解釋器(無論是默認還是因爲您在shell會話中手動切換)。

作爲一個例子,我的默認解釋器是Ruby 1.9.2。如果我通過這個命令:rvm 1.9.1 gem install pony,那麼爲Ruby 1.9.1安裝Pony gem。不過,我在安裝完成後仍然使用 Ruby 1.9.2。如果我輸入irb並嘗試require 'pony',則會出現加載錯誤。如果我運行rvm 1.9.1,然後輸入irb,Pony安裝並加載正常。

正如Brian在他對你的帖子的評論中所說的,你可以用rvm use ree進行手動切換。或者,您可以將您的初始命令切換爲:

$ rvm ree 
$ gem update --system 
$ gem --version 
+0

這產生了與原始問題相同的結果,一切都表示它正在更新,並且gem說它更新了正確的文件,但是當您運行gem時 - 將其更改仍然說舊版本。當我運行「哪個寶石」它指向相同的文件,rubygems剛剛報告它更新。 – 2010-08-23 18:07:33

+0

請注意,'rvm gem ...'已被移除,請嘗試'gem update --system'或'rvm all gem update --system'來代替。 (請參閱:['rvm usage'](http://rvm.io/rvm/cli)) – GOD 2014-01-24 16:51:04

1

這是一個不尋常的問題。 如果尚未解決,可以考慮使用

rvm --default use ree 
which ruby 
which gem 

這應該告訴你,如果你是在正確的版本。
使用rvm或直接安裝gems。

2

RVM建議我使用水木清華這樣的:在當前RVM紅寶石選擇

rvm [email protected] do gem update --system