【问题标题】:RVM Gemsets and Ruby Gemfile confusionRVM Gemsets 和 Ruby Gemfile 混淆
【发布时间】:2015-05-21 21:04:28
【问题描述】:

请有人帮助我了解 ruby​​ 应用程序如何管理应用程序的 gemfile 和 rvm gemsets。如果我当前正在使用 Gemset,并且安装了一堆 gem,并且我的 gemfile 中也有 gem,那么 Ruby 应用程序是使用 gemfile 中的 gem 还是应用程序的 gemset 中的 gem?

【问题讨论】:

    标签: ruby gem rvm gemfile


    【解决方案1】:

    要理解这一点,您需要退后一步,了解红宝石的一般工作原理。
    让我们从没有 rvm 或 Gemfile 的系统开始。
    当您通过“gem install”安装 gem 时,它会进入系统 gem 位置。
    每当您编写 ruby​​ 脚本并需要 gem 时,都会从那里获取它。

    现在假设您需要为不同的项目使用不同版本的 gem。这就是 bundler 的用武之地。您创建一个 Gemfile,当您“捆绑安装”时,Gemfile 中列出的 gem 将被引入并在该项目的上下文中使用。您将需要执行“捆绑安装”以将它们带入,然后在“捆绑 exec ruby​​”之后与 gem 版本一起运行。您可以拥有多个 gem 版本并选择使用哪一个。如果您不通过捆绑程序,您将使用系统中的任何内容。

    Rvm 现在。假设您想以有组织的方式更改“系统”gem 和 ruby​​ 版本。这基本上就是 rvm gemset 的内容。通过路径间接的魔法,您可以为不同的 gem 集安装 gem 并假装它们是系统 gem。

    所以 gemsets 和 gemfiles 是相互正交的。如果您使用 gem 文件,gems 将安装在 gem set 中,但如果您使用 bundler,您通常不会关心这一点。

    通常你会想要使用 Gemfile。

    【讨论】:

    • 这很有帮助。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2011-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-09
    相关资源
    最近更新 更多