Bundler:确保系统安装生产宝石?

时间:2016-09-01 18:10:03

标签: ruby bundler

我的git仓库中有一个ruby程序,由团队使用。它直接从git repo执行。我不希望所有团队成员都必须处理宝石,因此我希望在系统范围内(在共享磁盘上)安装生产级宝石。 Bundler将使用git控制的Gemfile.lock来决定要选择哪些宝石。

对于开发,我经常使用--user-install。

安装gem

问题:我可能会意外地推送使用仅用户安装的gems的更改,这会在其他人拉动并尝试运行时打破其他团队成员。

如何确保在系统范围内安装所有非开发宝石?

我是否可以运行捆绑命令来检测此错误并抛出错误?或者我可以以某种方式让我的黄瓜测试只使用系统宝石运行?

1 个答案:

答案 0 :(得分:3)

没有办法让Bundler使用系统宝石,不过我认为应该有:https://github.com/bundler/bundler/issues/1964

最直接的解决方案是将宝石打包到您的Git仓库:http://bundler.io/v1.12/bundle_package.html。 这实际上是捆绑团队建议应该在您希望用户能够运行您的应用程序而无需在本地安装宝石的情况下运行它。

第二个选项是您使用--path选项捆绑安装并将其指向所有用户可见的共享位置。记住此选项,因此请将.bundle检入您的Git仓库,然后您的用户将使用相同的配置并在运行捆绑时引用相同的位置。由于你已经安装了所有的宝石,所以它们没有问题。