2010-10-25 86 views
8

我安裝了Rails 2.3.5,並希望升級到2.3.10作爲Rails 3的墊腳石。我認爲運行gem install rails -v = 2.3.10會安裝2.3.10並保持2.3.5 。但是現在當我做Rails -v時,它只列出了Rails 2.3.10。我如何安裝不同版本的Rails並保留現有版本?如何安裝不同版本的Rails並保留現有版本?

回答

10

gem list rails應該會顯示所有已安裝的Rails版本。您可以指定您希望每個項目在config/environment.rb文件中使用哪一個。

或者(或「額外」),請查看RVM(特別是「gemset」函數),以便爲每個項目維護單獨的寶石套裝。

2017年5月更新代替RVM gemsets,在Rails項目(包括Rails創業板本身)中管理寶石的最佳實踐是使用Bundler。 Bundler的Gemfile將列出您項目使用的所有寶石,並允許您「釘住」版本,因此通過更改Rails的版本引腳並運行bundle,您可以將項目更新爲新版本。

<sarcasm>現在我已經說過了,儘管Bundler可能正在被別的東西取代。 </sarcasm>

+0

RVM gemsets是要走的路安裝的版本。 – wesgarrison 2010-10-25 04:00:05

1

您可以在config/enviroment.rb中定義應用程序的Rails版本。

6

與其他答案一樣,您仍然有兩個版本。但是,您不想調用rails newapp,然後更改config/environment.rb文件。這將導致版本之間發生更改的任何文件出現問題。相反,創建一個新的2.3.5應用程序是這樣的:

rails _2.3.5_ newapp 

而且你會遇到你想要的軌道的確切版本,正確創建的文件結構。我不知道爲什麼這沒有更好的記錄。

1

您可以將您需要的導軌版本供應到供應商/導軌文件夾。在命令行運行rake`rake rails:freeze:edge RELEASE = 2.2.2'。您不需要爲此安裝的任何版本的rails,它將採用源代碼並從供應商目錄中的遠程源構建它。

rake rails:freeze:edge RELEASE=2.2.1 
rake rails:freeze:edge RELEASE=2.2.2 
rake rails:freeze:edge RELEASE=2.2.3 
rake rails:freeze:edge RELEASE=2.2.4 
rake rails:freeze:edge RELEASE=2.2.5 
rake rails:freeze:edge RELEASE=2.2.6 
rake rails:freeze:edge RELEASE=2.2.7 
rake rails:freeze:edge RELEASE=2.2.8 
0

要回答你的問題,你可以安裝rails gem的許多版本而不會發生衝突。但是,每個項目都是使用特定版本創建的。如下安裝rails gem的新版本; 用您喜歡的任何版本更改版本3.2.18(有關所有可用版本,請參閱下面的鏈接)。

gem install rails --version=3.2.18 

要安裝最新版本的

gem install rails 

要檢查所有可用的軌道版本,看看這個鏈接

Here is a link to all the version of rails

你可能會考慮通過這個命令更新您的寶石軟件在加載新的寶石之前。

gem update --system 

按@pjmorse,列出與這個命令

gem list rails 

希望幫助

相關問題