ruby-on-rails - 使用 rbenv 和多个项目随着时间的推移维护 gems

标签 ruby-on-rails rubygems bundler rbenv

我刚刚从 的多年开发中切换过来RVM rbenv rbenv 有一个方面我似乎无法理解:

当我在同一版本的 Ruby 下处理多个项目(每个项目都有自己的依赖项),然后停止处理其中一个项目时,如何从我的 gempath 轻松升级其所有依赖项(显然是 /Users/meltemi/.rbenv/versions/2.1.4/lib/ruby/gems/2.1.0 )?

使用 RVM,每个项目都有一个 gemset所以很容易删除它。

使用rbenv,每个gem 的每个版本似乎都进入bundler 所在的同一目录中。可以管理它。伟大的!但是说我经历了一个 bundle outdatedbundle update然后 bundle clean在 ProjectA 中循环,这不会删除我当天晚些时候可能需要处理的 ProjectB 中无法识别的所有 gem 吗?

或者说我不再想在 ProjectA 上工作并想删除该项目以及与之相关的所有 gem?

也许我以错误的方式接近这个?!?希望有人能让我直截了当,因为关于 rbenv 的其他一切看起来都很简单而且很有意义!

最佳答案

我不确定 bundle clean 的机制,但听起来它确实引入了删除与其他项目相关的 gem 的可能性。

您有几个选择:

1. 您可以让所有 gem 版本都存在于 ~/.rbenv/...只需让 Bundler 为您管理所有这些。旧的/陈旧的 gem 将存在。 (我目前这样做。)

2. 您可以使用像 rbenv-gemset 这样的插件为了更多的隔离。 (或切换回 RVM。)

3. Bundler 还允许您指定安装 gem 的路径,您可以将它们安装在项目目录中(例如:/myapp/vendor/)。

# Per project
bundle config --local path vendor
bundle install
# Saves configuration to /myapp/.bundle/config

# Global
bundle config --global path vendor
bundle install
# Saves configuration to ~/.bundle/config

可能有其他方法来解决这个问题,但这些都是我熟悉的方法。

关于ruby-on-rails - 使用 rbenv 和多个项目随着时间的推移维护 gems,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39135565/

相关文章:

ruby-on-rails - 保留字的最佳实践?重命名 Rails 中的变量

ruby-on-rails - Bundler 是幽灵 bundle - 它使用 gem 但乘客返回 GemNotFoundError

windows - 如何在 Windows 上将 ruby​​gems 平台从 x86-mingw32 更改为 x86-mswin32-60

ruby-on-rails - 编辑 Gemfile、运行 bundle install 或 bundle update 后 "Gemfile syntax error"

ruby-on-rails - Bundler 无法在 Rails 中的 bundle 安装中找到兼容版本

ruby-on-rails - 从 4.1.1 降级到 rails 3.2.18

ruby-on-rails - 如何在heroku上使用rails设置pgbouncer?

ubuntu - 在 Ubuntu 上安装 capistrano

ruby-on-rails - 无法加载此类文件 -- systemu 错误

ruby-on-rails - 在 bundler ruby​​ 版本中指定一个范围