【问题标题】:Rubygems, Bundler and RVM confusionRubygems、Bundler 和 RVM 混淆
【发布时间】:2011-06-03 23:52:14
【问题描述】:

我在再次询问之前阅读了“Relationships between Rubygems, Bundler, and RVM”。

嗯,有很多这样的问题,但回答的人说他们使用 Rubygems、RVM 和 Bundler,他们没有解释这些如何单独工作。

当我们安装 gems 时,我真的很困惑这三者是如何独立工作的。请不要告诉我你的工作方式,这会对我有所帮助,但我不会知道我们和他们一起玩时发生了什么。

我的困惑可以分解为这些问题。什么时候在哪里安装 gem:

  1. 我只有 Rubygems(没有 RVM 或 Bundler)?
  2. Rubygems 和 RVM 是否已安装?
  3. Rubygems、RVM 和 Bundler 安装了吗?

请通过网络上的资源或您的详细回答帮助我理解这些内容。

【问题讨论】:

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


    【解决方案1】:
    1. 要了解 gem 的安装位置,请在终端中运行 echo $GEM_HOME
    2. 使用 RVM 时,Gem 会安装到您的 RVM 安装中,因为它会更改 $GEM_HOME。现在运行 echo $GEM_HOME 将显示 RVM 安装的路径。
    3. 当 Bundler 添加到组合中时,gems 将安装在 $GEM_HOME 中,或者,如果您在运行时指定路径 bundle install 将安装到该路径。要通过 Bundler 找出 gem 的位置,您可以使用 bundle show gemname 获取其完整路径。

    【讨论】:

    • fyi for #2 running 'rvm info' 也很有用 - 打印出当前正在使用的整个 ruby​​ + ruby​​gems 环境。
    【解决方案2】:

    使用gem env 列出每个上下文中的 gem 路径。

    没有 RVM gem env 会报告系统 gem 库路径。

    使用 RVM gem env 将报告 RVM 管理的 gem 库路径。

    Bundler 管理应用程序依赖项并安装到您环境中的 gem 库中。如果您使用的是 RVM + Bundler,gems 将安装在 RVM 管理的 gem 目录中。如果您在没有 RVM 的情况下使用它,bundler 将在系统 gem 目录中安装 gem。

    【讨论】:

      【解决方案3】:

      要查找安装 gem 的路径,请使用:

      gem which gem_name
      

      要查找可执行文件(如 html2haml),请使用:

      which executable_name
      

      要避免键入 Bundler 团队推荐的 bundle exec html2haml,请使用我的 rubygems-bundler gem。

      【讨论】:

        【解决方案4】:

        我也试图了解它是如何工作的。博客“Advice on using Ruby, RVM, Passenger, Rails, Bundler, … in development”帮助我更好地了解了概况。

        顺便说一句,这是一篇法语文章的翻译,法语版本更好。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-05-20
          • 2011-03-26
          • 1970-01-01
          • 1970-01-01
          • 2013-03-13
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多