RVMRuby版本管理工具
需要重新創(chuàng)建另一個 Ruby 編碼人員的開發(fā)環(huán)境?希望體驗(yàn)最新版本的 JRuby?想要將您的工作隔離到一組特定的 gem 中?有了方便且聰明的 Ruby Version Manager,您可以完成所有這些以及更多的工作。
RVM是一個命令行工具,可以提供一個便捷的多版本ruby環(huán)境的管理和切換。它提供了以下重要的特性:
RVM 目前可構(gòu)建超過 35 種實(shí)現(xiàn)。通過一條命令就可以下載、構(gòu)建和安裝任意 Ruby 解釋器。
它創(chuàng)建和管理任意數(shù)量的 Ruby 環(huán)境,其中每個環(huán)境提供單獨(dú)的 Ruby 解釋器。因此,一個項(xiàng)目可以使用 JRuby,而在同一臺計(jì)算機(jī)上開發(fā)的另一個項(xiàng)目則可以指定最新的 MRI。
此外,每個環(huán)境可以擁有任意數(shù)量的分散 gem 集合。RVM 將每個集合適當(dāng)?shù)胤Q為 gemset。您可以有一個與 JRuby 關(guān)聯(lián)的名為 auto_parts_store 的 gemset,以及一個與 MRI 版本 1.9.3 關(guān)聯(lián)的名為 auto_parts_store 的完全不同的 gemset。每個 gemset 在解釋器上下文中必須使用一個惟一名稱。
解釋器與 gemset 的結(jié)合(提供運(yùn)行 Ruby 代碼和庫代碼主體的引擎)可通過 interpreter@gemset 符號輕松引用,其中,interpreter 是一個已知解釋器的名稱,而 gemset 是現(xiàn)有 gemset 的名稱。例如,1.8.7p302@acme 指的是面向該語言的 1.8.7 版本的 Ruby MRI 補(bǔ)丁級別 302,以及面向 Acme 網(wǎng)站的 gem 集合。gemset 可以使用任意名稱。各個解釋器的名稱由 RVM 提供。
在不同環(huán)境之間切換非常簡單。您需要鍵入以下命令:rvm interpreter@gemset。
通常,在您的主目錄中,每個環(huán)境都是自包含的和筒倉式 (siloed) 的。事實(shí)上,整個 RVM 系統(tǒng)都位于您的主目錄中,確保另一個用戶無法強(qiáng)制改寫或破壞您已經(jīng)集合的內(nèi)容,類似地,您也無法破壞其他用戶已經(jīng)集合的內(nèi)容。(您也可以集中安裝 RVM,但是這種做法不太常見)。
您可以對其中一個、一些或所有環(huán)境運(yùn)行應(yīng)用程序的測試套件。在本地運(yùn)行 MRI,但是在服務(wù)器上使用 REE。使用 RVM 對兩者測試代碼,然后再正式使用這些修改。
RVM 允許您快速試用代碼組合,從而可以保持應(yīng)用程序的穩(wěn)定和與時俱進(jìn)。如果發(fā)布了一個新的 MRI,您可以在 RVM 中構(gòu)建它,創(chuàng)建一個新的環(huán)境,運(yùn)行測試,如果一切順利的話就可以使用這個新的 MRI 了。
RVM 的安裝非常簡單。只需要使用一條命令并對您的 shell 啟動腳本稍作更改即可。
curl -sSL https://get.rvm.io | bash -s stable
