支援
RVM 由志工社群維護,請將問題回報至 RVM 問題追蹤器。
如果您能提供協助或想成為維護人員之一,請開始提供協助。您可以在 RVM Github 組織 找到更多與 RVM 相關的專案。
贊助商
Carbon Ads

RVM 和 RubyGems

RVM 為每個版本的 Ruby 建立一個全新的獨立 gem 目錄。此外,您可以進一步將其分開,並為每個專案/應用程式/土撥鼠顏色設定一組 gem... 請參閱 gemsets 以取得有關使用 gem 組合的更多詳細資訊。

請勿使用 sudo...

來處理 RVM gem。當您使用 sudo 時,您會以 root 身分執行指令,另一個 shell 中的另一個使用者,因此 RVM 為您完成的所有設定都會在指令於 sudo 下執行時被忽略(例如 GEM_HOME 等)。因此,再次重申,只要您「sudo」,您就會以 root 系統使用者的身分執行,這會清除您的環境,以及它建立的任何檔案都無法由您的使用者修改,並會導致奇怪的事情發生。(您會開始認為有人對您的應用程式施了巫毒娃娃術...)

您可以使用 gemdir 動作查看目前選取的 Ruby 的 gem 目錄

$ rvm 2.1.1
$ rvm gemdir

/Users/rys/.rvm/gems/ruby-2.1.1

若要變更為目前選取的 Ruby 的 gem 目錄,請使用子 shell

$ rvm 2.1.1
$ cd $(rvm gemdir)
$ pwd

/Users/rys/.rvm/gems/ruby-2.1.1

如果您經常執行此動作,可以在 ~/.bash_profile 或 ~/.zshrc 中放置以下 bash 函式

# Thanks for the awesome idea batasrki
function gemdir {
  if [[ -z "$1" ]] ; then
    echo "gemdir expects a parameter, which should be a valid RVM Ruby selector"
  else
    rvm "$1"
    cd $(rvm gemdir)
    pwd
  fi
}

然後可以如下所示切換至個別 RVM Ruby gem 目錄。

$ gemdir 2.1.1

/Users/rys/.rvm/gems/ruby-2.1.1

$ pwd

/Users/rys/.rvm/gems/ruby-2.1.1

RubyGems CLI API

RVM 現在提供「rubygems」CLI 指令,讓您可以變更已安裝直譯器的 rubygems 版本。若要安裝 RVM 所知的最新 RubyGems,您可以執行

$ rvm rubygems current

如果已發布比 RVM 所知的更新版本的 rubygems,則您應取得最新版本的 RVM,最好是最新 git head,才能安裝較新版本,因為它們的下載網址會隨著每個版本而變更/不一致(rubyforge 架構)。

若要安裝特定 rubygems 版本,你可以直接指定版本。例如,如果我們希望安裝 RubyGems 1.5.2 版本,我們會這樣做。

$ rvm rubygems 1.5.2

在 MRI 1.9.X+ 的情況下,RubyGems 版本會內建。如果你透過「rvm rubygems」API 安裝不同的 RubyGems,並決定要回到內建版本,你可以執行以下指令,移除已安裝的不同版本。

$ rvm rubygems remove

相同 Ruby 版本,搭配不同的 RubyGem 版本

RubyGem 版本與 Ruby 版本相關聯。無法同時使用兩個不同版本的 RubyGems,搭配相同的 Ruby 版本。但有時你會想要將兩個或更多不同的 RubyGems 版本,搭配相同的 Ruby 版本。

為了達成此目的,我們必須安裝相同版本的 Ruby,但使用不同的 名稱。

$ rvm install ree -n rg152
$ rvm use ree-rg152
$ gem --version
1.8.10
$ rvm rubygems 1.5.2
 ...
$ gem --version
1.5.2