Bundler:确保在系统范围内安装生产 gems?
Bundler: ensure production gems installed system-wide?
我的 git 存储库中有一个 ruby 程序,供团队使用。它直接从 git 存储库中执行。我不希望所有团队成员都必须处理 gem,因此我希望在系统范围内(在共享磁盘上)安装生产级 gem。 Bundler 将使用 git 控制的 Gemfile.lock 来决定拾取哪些宝石。
为了开发,我经常使用 --user-install 安装 gem。
问题:我可能会不小心推送使用仅由用户安装的 gem 的更改,这会在其他团队成员拉动并尝试 运行 时破坏他们 运行。
如何确保在系统范围内安装所有非开发 gem?
是否有一个捆绑命令可以 运行 检测到并抛出错误?或者我可以仅使用系统 gems 以某种方式让我的黄瓜测试达到 运行 吗?
无法让 Bundler 使用系统 gems,但我认为应该有:https://github.com/bundler/bundler/issues/1964
最直接的解决方案是将 gems 打包到您的 Git 存储库中:http://bundler.io/v1.12/bundle_package.html。
在您希望用户能够 运行 您的应用程序而无需在本地安装 gems 的情况下,这确实是 bundler 团队建议它应该 运行 的方式。
第二个选项是使用 --path 选项来捆绑安装并将其指向所有用户可见的共享位置。记住此选项,因此将 .bundle 检查到您的 Git 存储库中,然后您的用户将在 运行 捆绑时使用相同的配置并引用相同的位置。因为所有的 gem 都已经被你安装在那里,所以它们不会有问题。
我的 git 存储库中有一个 ruby 程序,供团队使用。它直接从 git 存储库中执行。我不希望所有团队成员都必须处理 gem,因此我希望在系统范围内(在共享磁盘上)安装生产级 gem。 Bundler 将使用 git 控制的 Gemfile.lock 来决定拾取哪些宝石。
为了开发,我经常使用 --user-install 安装 gem。
问题:我可能会不小心推送使用仅由用户安装的 gem 的更改,这会在其他团队成员拉动并尝试 运行 时破坏他们 运行。
如何确保在系统范围内安装所有非开发 gem?
是否有一个捆绑命令可以 运行 检测到并抛出错误?或者我可以仅使用系统 gems 以某种方式让我的黄瓜测试达到 运行 吗?
无法让 Bundler 使用系统 gems,但我认为应该有:https://github.com/bundler/bundler/issues/1964
最直接的解决方案是将 gems 打包到您的 Git 存储库中:http://bundler.io/v1.12/bundle_package.html。 在您希望用户能够 运行 您的应用程序而无需在本地安装 gems 的情况下,这确实是 bundler 团队建议它应该 运行 的方式。
第二个选项是使用 --path 选项来捆绑安装并将其指向所有用户可见的共享位置。记住此选项,因此将 .bundle 检查到您的 Git 存储库中,然后您的用户将在 运行 捆绑时使用相同的配置并引用相同的位置。因为所有的 gem 都已经被你安装在那里,所以它们不会有问题。