如何基于Gemfile.lock安装gem(没有Gemfile)

时间:2016-12-28 09:39:34

标签: ruby bundler

通常,人们会使用bundle install来安装宝石。但它需要Gemfile和Gemfile.lock(可选)。

我的情况有点不同。我只有Gemfile.lock。那么如何根据bundle命令安装所有这些宝石。

我试过了bundle install --deployment。但我得到无法找到Gemfile 错误。

行。我在bundler github问题中问了这个问题。他们的成员给了我一个很好的答案:https://github.com/bundler/bundler/issues/5293#issuecomment-269978731

总结 - 我不能这样做

我放弃了仅使用Gemfile.lock运行bundle install。但我仍然需要解决我的问题。在我的Gemfile中,我没有任何特殊选项,如组,平台,安装条件。所以我写了一个script(gem)来将Gemfile.lock还原为我的docker镜像的Gemfile。

[解决]

3 个答案:

答案 0 :(得分:0)

您可以使用捆绑包的deployment mode

答案 1 :(得分:0)

只有gemfile.lock,您可以运行

bundle install --deployment 

唯一的问题是,此命令会将gem安装到vendor / bundle而不是普通的gem bundle路径。之所以如此,是因为它只能用于生产。

虽然效果很好。

答案 2 :(得分:0)

您是否尝试过直接在终端中运行gem install?这样你根本不需要使用Gemfile。

例如,使用devise gem,您只需在终端中运行$ gem install devise即可安装设计gem,而无需将其添加到Gemfile中。

相关问题