2016-04-26 94 views
1

尋找一些澄清使用我的應用程序和寶石這兩個方案Gemfile.lock的和寶石Ruby應用程序

1)之間的差值的好處我Gemfile指定紅寶石版本,並沒有寶石

2)我會運行包的第一個場景創建一個.ruby-version.ruby-gemset文件

所以和我所有的寶石依賴和版本將被寫入Gemfile.lock的

在第二種情況下會發生同樣的情況,但也會創建一個gemset。 每次我使用gemset進入項目時,它都會使用該gemset。

我的情況是我有多個Ruby應用程序,我不希望有任何的寶石不兼容問題,並保持一致的做法

所以,首先我失去了一些基本面這裏其次什麼樣的價值將在寶石給我尚未涵蓋Gemfile.lock

謝謝

+0

取決於你想完成什麼? – 13aal

+0

更新與我的方案,謝謝 – Richlewis

回答

1

所以有幾件事。

首先,.ruby_version用於指定您所在文件夾使用哪個版本的ruby。如果您運行多個版本的ruby並確保應用程序運行該版本的ruby,這非常有用。如果沒有.ruby-version那麼將使用全局版本的ruby。

當您調用gem install或bundler時,它會根據從中調用的ruby的版本來安裝gem。因此,如果您的全球版本的ruby是ruby-2.0,並且您在本地的紅寶石.ruby_version是ruby-2.3.0,並且您從本地ruby調用bundle install,它將針對ruby-2.3.0安裝gem。

這個.ruby-version.ruby-gemset無關,可以使用或不使用它。

其次。 .ruby-gemset文件指定應用程序應該使用的gemset,非常類似於bundler創建的Gemfile.lock文件。如果您使用bundle exec開始您的應用程序,應用程序將使用安裝的捆綁寶石。如果你剛開始你的應用程序,如果你有一個.ruby-gemset文件,全局的寶石將被使用和作用域。

像我這樣的人喜歡打包機,其他人不喜歡打包機。您不需要使用捆綁器,但是與其他應用程序中的其他應用程序一樣,它在某些情況下使生活更輕鬆。

見有關指定Ruby版本在您的Gemfile你的寶石這個老例(http://rakeroutes.com/blog/how-to-use-bundler-instead-of-rvm-gemsets/

+0

謝謝,這有助於 – Richlewis