2010-12-14 90 views
3

OS X 10.6默認安裝了Rails 2.2.2。
如何升級到Rails 2.3.8?在OS X上安裝了多個版本的Rails

由於Rails 3已經不存在,是否可以在OS X上安裝多個版本的Rails(如2.3.8和3)?
(例如,我可以在兩個Rails項目上工作,一個是Rails 2.x,另一個是Rails 3.x)。

+0

要記住的一件事是,系統默認安裝的Ruby,Python,Perl和其他任何東西都應該處於已知的版本級別,無論是由OS開發人員還是其他任何編寫系統級代碼的人員。任意改變他們認爲是神聖的代碼的庫可能導致很難診斷錯誤,因爲沒有可用的集成和迴歸測試。考慮像更改'/ usr/bin'中的命令那樣更改系統的Ruby,並且您可能會安全,但瞭解它也可能出錯。 – 2010-12-16 14:07:42

+0

使用'locate * .py | grep ^/usr | grep -v/System'與各種語言的擴展來查看Apple使用的內容。這些語言不是那種錦上添花,它們也是爲了特定的目的而存在的。 – 2010-12-16 14:30:22

回答

15

使用rvm

RVM是一個命令行工具,它可以讓我們輕鬆地安裝,管理和與譯員臺寶石多個Ruby環境中工作......

RVM允許用戶部署每個項目都有自己完全獨立和專用的環境 - 從特定版本的紅寶石一直到精確的所需寶石集合以運行應用程序。擁有一套精確的寶石也可避免項目之間版本衝突的問題,導致難以追蹤的錯誤和脫髮時間。使用RVM,不需要安裝所需的其他GEM。這使得可以處理多個複雜的應用程序,每個應用程序都有一個高效的gem依賴關係列表。 RVM使我們能夠輕鬆測試寶石升級,方法是切換到一組全新的寶石進行測試,同時保留原來的原始設置。它非常靈活,甚至有一組每個環境或開發分支寶石 - 甚至是個人開發者的口味......

+1

表示同意,這正是rvm所創造的。查看寶石的2.x和3.x套寶石 – 2010-12-14 18:42:33

+0

+1,這是*答案。再看一下。 – DGM 2010-12-14 18:43:14

+2

Rvm適用於Ruby和寶石環境的多個版本。不是特定的寶石。你可以很容易地做到這一點沒有rvm。對? – Icid 2010-12-14 18:43:32

2

使用

gem install -v=2.3.8 rails 

其中-v = [版本號要安裝]

然後

list gem rails 

在您的config/environment.rb中,您可以指定要使用哪個Rails版本。

1

要升級軌寶石您的操作系統版本:

sudo gem install rails --version 2.3.8 

當你在這,你也可以升級你的操作系統RubyGems的制度本身,並覆蓋OS X自帶的二進制文件。這看起來可能有些不禮貌,但是每個人都這樣做是穩定的。

sudo gem install rubygems-update 
sudo update_rubygems 

關於管理軌道版本在您的項目,如果你唯一需要的是:

  1. 指定rails的版本要在Rails項目
  2. 指定不同版本的軌道和/或其他寶石在每個多軌項目

然後rvm是矯枉過正。你需要的唯一東西,以及與之合作的完全和全然的樂趣是Bundler。 Bundler就像您的rails項目的軟件更新一樣。事實上,Rails 3在默認情況下隨Bundler提供,您只需在Gemfile中列出需要的寶石,然後就可以完成剩下的工作。您無需擔心在操作系統中安裝了哪些版本的寶石。

(你得視需要安裝在操作系統中軌寶石的相應版本,以便產生在首位Rails項目)

6

我不會打擾gemsets自己只是做其他人提到:

gem install -v=2.3.8 rails 

,然後使用方法:

rails _2.3.8_ new rails app 

注意,這_versionnumber_件事是指定一個版本RubyGems的任何的斯塔的標準方法lled可執行文件。