Gemfile.lock的和宝石Ruby应用程序

问题描述:

寻找一些澄清使用我的应用程序和宝石这两个方案Gemfile.lock的和宝石Ruby应用程序

1)之间的差值的好处我Gemfile指定红宝石版本,并没有宝石

2)我会运行包的第一个场景创建一个.ruby-version.ruby-gemset文件

所以和我所有的宝石依赖和版本将被写入Gemfile.lock的

在第二种情况下会发生同样的情况,但也会创建一个gemset。 每次我使用gemset进入项目时,它都会使用该gemset。

我的情况是我有多个Ruby应用程序,我不希望有任何的宝石不兼容问题,并保持一致的做法

所以,首先我失去了一些基本面这里其次什么样的价值将在宝石给我尚未涵盖Gemfile.lock

谢谢

+0

取决于你想完成什么? – 13aal

+0

更新与我的方案,谢谢 – Richlewis

所以有几件事。

首先,.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