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