2012-01-16 49 views
26

是否可以使用rbenv的多個版本的rails(例如2.3和3.1)?在rvm中使用gemsets很容易,但是我想知道現在切換到rbenv的最好方法是什麼(也是,我正在尋找一種不使用rbenv-gemset的方法)。如何在rbenv中使用多個rails版本?

+0

相關問題:http://stackoverflow.com/questions/9771172/rbenv-surviving-without-gemsets(我錯過了這個問題,當我問我的,或許是因爲rbvenv錯字) – 2015-06-04 10:16:39

回答

51

不知道你是否得到了這個答案,但我想我會提供我所做的,它似乎工作。

所以一旦你安裝了rbenv,並使用它來安裝一個特定的ruby版本,你可以安裝多個版本的rails到那個ruby。

STEP 1.安裝導軌的任何版本()你每紅寶石版本

% RBENV_VERSION=1.9.2-p290 rbenv exec gem install rails --version 3.0.11 

希望通過在命令行中使用 「RBENV_VERSION = 1.9.2-P290」 的前綴,你指定哪些ruby rbenv應該關心。

然後在「rbenv exec」命令之後,您可以安裝rails。只需使用示例中的版本標誌來指定您想要的版本即可。不知道您是否可以一次安裝多個版本,但我只需根據需要多次運行此命令即可安裝每個我想要的版本。

注意:這將全部在您的rbenv目錄中進行管理,因此它非常安全並且被包含在內。

步驟2.通過指定所需的rails版本來構建一個新的rails項目。

% RBENV_VERSION=1.9.2-p290 rbenv exec rails _3.0.11_ new my_project 

STEP 3.不要忘了進入該項目,並設置本地rbenv紅寶石版本。

% cd my_project 
% rbenv local 1.9.2-p290 

現在,如果你想刪除這個項目,只是刪除它正常。

如果你想刪除/管理從rbenv寶石一軌的版本,你可以使用普通寶石的命令,只是前面加上你的命令行用:

% RBENV_VERSION=1.9.2-p290 rbenv exec gem {some command} 

當然,你可以刪除一個完整的紅寶石版本以及它在rbenv內輕鬆管理的所有墊片等。我喜歡自我包容一切。

希望這會有所幫助。

以供參考,這是通過對至少一些這方面的東西相當好走:

http://ascarter.net/2011/09/25/modern-ruby-development.html

+0

感謝這個答案,但我想知道難道你不能只是創建rails項目,並指定項目內的rails版本,然後做捆綁安裝?你能解釋你的答案是一個更好的解決方案嗎?我沒有那麼有經驗,所以知道這很有幫助。順便說一句,感謝 – Leahcim 2013-01-03 06:40:44

+0

,一旦你用這個前綴創建了項目,你是否在項目中執行的每個命令都使用了這個前綴?前綴+軟件包安裝?前綴+寶石安裝{寶石名稱}等? – Leahcim 2013-01-03 06:52:09

+0

不,您不需要繼續使用前綴。我的答案有些過分,因爲RVM是一個完整的包管理器(ruby + rails版本),我試圖說明一種與rbenv類似的方法,它與RVM不同,主要是ruby管理器。 OP詢問關於在rbenv中使用多個rails版本,所以我正在描述如何將特定的rails版本安裝到特定的ruby版本(可以安裝多個版本),然後選擇在使用該ruby創建項目時使用哪一個版本版。這會給你類似於RVM的東西。 – Nathan 2013-01-10 05:43:08

18

有一個叫rbenv-gemset一個rbenv插件,它應該表現類似rvm gemset -command但由於rbenv從來沒有打算這樣工作,我沒有嘗試過。

我通常使用Bundler作爲Nathan在其他答案的評論中提出的建議來管理Rails版本。我創建了一個Gemfile中與我的期望Rails的版本,運行bundle install,創建Rails應用程序,讓它取代的Gemfile,讓捆紮機接管:如果您想更詳細

mkdir my-rails-app 
cd my-rails-app 
echo "source 'https://rubygems.org'" > Gemfile 
echo "gem 'rails', '3.2.17'" >> Gemfile 
bundle install 

bundle exec rails new . --force --skip-bundle 
bundle update 

,我寫了an article on my blog了。

希望它能幫助!

+0

的已安裝可執行文件衝突,這是一篇不錯的文章。感謝捆綁商 – onmyway133 2016-03-23 08:36:22

+0

這是我一直在尋找+1的解決方案 – Qchmqs 2017-01-08 14:57:08