如何使用 RVM 和 Bundler 减少重复的 gem?

How to reduce duplicate gems with RVM and Bundler?

我在一家公司工作,在那里我开发了 10 多种不同的 ruby 和 rails 应用程序。在这十个应用程序中,我有 3 ruby 个版本和 7 个 gem 集(总计)。有某些实用程序 gems(如 prycoloredgit-uphookup 等),我希望能够安装一次(根据 ruby — 如有必要)并可以访问相同 ruby 版本中的 gem 集合。

我尝试将这些 gem 安装到每个 ruby 版本的 'global' gem 集中,但是,一旦我 cd 进入项目并且gem 设置更改(尽管 ruby 版本相同),我不再有权访问 gem 的可执行文件。我必须在特定的 gem 集中重新安装 gem。

我只是觉得我遗漏了一些东西,因为我的系统上安装了太多重复的 gem。围绕这种期望行为的最佳实践是什么?谁能指出我正确的方向?

谢谢。

如果您想为 ruby 安装一个 gem,您需要安装一个 gem install pry。这将在 ruby 级别上安装 gem。之后,您可以在 Rails 应用程序中要求它,例如在 boot.rb 文件中。 我不确定 rvm 如何处理 gem 集。如果他们所做的是更改 gem 命令的整个文件夹引用,那么您将无法做到这一点。我需要为每个 gem 集安装那些 gems,这是一个 PITA。

在我的工作流程中,我不需要 gem 集,因为我有捆绑器。所以我使用 rbenv 安装和更改 ruby 版本,并让 bundler 为项目处理 gems。像这样,我可以根据 ruby 全局安装一个 gem,它可以工作。