2011-12-19 70 views
4

我很難理解每個項目gemsets的RVM。我已經安裝RVM和1.9.2和1.8.7紅寶石,按照http://beginrescueend.com/interpreters/ruby/,當我要開始一個新的項目,我一直每個項目的RVM gemsets

cd ~/Code 
rvm use 1.9.2 
rvm gemset create test1 
rvm gemset use test1 
gem install rails 

但是,這需要很長的時間! (安裝導軌)。然後我rails new test1; cd test1

我真的無法確定正確的工作流程。如果我正在創建一個新的應用程序進行測試,我不想等待安裝導軌。

http://beginrescueend.com/gemsets/basics/看來,我可以創建一個導軌gemset,但是如何創建每個項目gemset?

編輯:

如果我要使用多的Ruby/Rails的版本,我應該創建一個寶石,說[email protected],然後rails new blah,在blah/.rvmrc[email protected],如果我需要後來,創建一個blah寶石?

+1

不是一個直接的答案,而是一個有趣的閱讀 - [「供應商的一切」仍然適用](http://ryan.mcgeary.org/2011/02/09/vendor-everything-still-applies/)談到這個工作流程不涉及每個項目的gemset,而是依賴於Bundler的'--path'選項。我喜歡這種方法。 – 2011-12-19 06:18:43

回答

10

gemset只是一個容器,可以用來保持寶石彼此分離。

大創意:爲每個項目創建gemset允許您在不打破所有其他項目的情況下爲一個項目更改寶石(和寶石版本)。每個項目只需要擔心自己的寶石。這是一個好主意,安裝像Rails這樣的大型寶石的等待時間通常是值得的。

也就是說,如果你打算使用Rails的同一版本的所有項目和想節省時間,你可以在'global' gemset安裝導軌(也許耙以及) - 這些寶石都可以在所有寶石爲該版本的紅寶石

假設你已經有一個test1寶石:

$ rvm gemset use global 
$ gem install rails 
$ gem install rake 
$ rvm gemset use test1 
$ rails test1 
+1

爲什麼給這個'bundler'需要?有些東西仍然沒有用gemsets點擊我。我習慣於爲不同的項目使用不同版本的Ruby和不同版本的gems(例如使用'rbenv'),而不必爲每個項目管理「gemsets」。 – sixty4bit 2016-06-30 15:34:10

1

有一次,我寫了一篇關於how to use RVM with gem sets一個簡單的博客文章,這可能會對你有所幫助。

更新:由於上面的鏈接已死亡,我相信它是在另一個位置here

+0

乾杯,幫助澄清事情。脫離主題,但你真的需要改變顏色,缺乏對比度會殺死我的眼睛。 – Zeophlite 2011-12-20 01:47:32

+2

找不到那個鏈接上的任何東西,它給了我找不到的網址。 – Saad 2015-12-26 04:17:39

+0

我發現似乎是一個活動鏈接,並將其添加到編輯中。 – 2017-05-15 21:47:57