我读 ”Rubygems、Bundler 和 RVM 之间的关系”然后再问一遍。

嗯,像这样的问题有很多,但是回答的人说他们使用 Rubygems、RVM 和 Bundler,并且他们没有解释其中每一个如何单独工作。

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

我的困惑可以分解为这些问题。在以下情况下,gem 安装在哪里:

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

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

有帮助吗?

解决方案

  1. 要找出 gems 的安装位置,请运行 echo $GEM_HOME 在终端中。
  2. 使用 RVM 时,gems 会在更改 $GEM_HOME 时安装到 RVM 安装中。跑步 echo $GEM_HOME 现在将显示 RVM 安装的路径。
  3. 当 Bundler 添加到组合中时,gems 将安装在 $GEM_HOME, ,或者,如果运行时指定路径 bundle install 将安装到该路径。要通过 Bundler 查找宝石的位置,您可以使用 bundle show gemname 获取其完整路径。

其他提示

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

不带 RVM gem env 将报告系统 gem 库路径。

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

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

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

gem which gem_name

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

which executable_name

为了避免打字 bundle exec html2haml 这是 Bundler 团队推荐的,使用我的 rubygems 捆绑器 宝石。

我也在尝试了解它是如何工作的。博客“关于在开发中使用 Ruby、RVM、Passenger、Rails、Bundler 等的建议“帮助我更好地了解了情况。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top