【问题标题】:How to reduce duplicate gems with RVM and Bundler?如何使用 RVM 和 Bundler 减少重复的 gem?
【发布时间】:2023-04-02 05:32:01
【问题描述】:

我在一家公司工作,我开发了 10 多种不同的 ruby​​ 和 rails 应用程序。在这十个应用程序中,我有 3 个 ruby​​ 版本和 7 个 gemsets(总共)。有某些实用程序 gem(如 prycoloredgit-uphookup 等),我希望能够安装一次(每个 ruby​​ - 如果需要)并可以跨 gemsets 访问在相同的 ruby​​ 版本中。

我尝试将这些 gem 安装到每个 ruby​​ 版本的“全局”gemset 中,但是,一旦我 cd 进入一个项目并且 gemset 发生更改(尽管相同的 ruby​​ 版本),我就无法再访问 gem 的可执行文件了。我必须重新安装特定 gemset 中的 gem。

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

谢谢。

【问题讨论】:

    标签: ruby-on-rails ruby gem rvm bundler


    【解决方案1】:

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

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

    【讨论】:

    • 我多年来一直是 RVM 用户,但似乎 rbenv 可以实现所需的行为。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多