1

rbenv 文档指出,如果您不使用 bundler,您可以使用 gemsets 插件对您的 gem 进行沙箱处理:

Manage gemsets. Bundler is a better way to manage application dependencies. If you have projects that are not yet using  Bundler you can install the rbenv-gemset plugin.

但是,我正在使用捆绑器,当我在具有不同 gemset 的项目之间切换时,我需要重新捆绑。当我使用 rvm 时,由于 .gemsets 文件,这很简单。

捆绑程序中是否有我不知道或我误解了文档的沙盒功能?

4

4 回答 4

5

我发现了这个清晰、有据可查的解决方案:

设置和安装 rbenv、ruby-build、rubies、rbenv-gemset 和 bundler

现在,当您安装 gem(参见下面的“Bundler”部分)时,它会转到您的 helloset gem 区域。

您可以将多个 gemset 与它结合使用。

此设置的最大好处是使每个项目都可以使用一组不同的不同版本的 gem。

阅读标题为 的部分Enable RVM-style “gemsets” (optional)

它使用 gemsets 的 rbenv 插件:https ://github.com/jamis/rbenv-gemset 。

2012 年 8 月 12日更新
我正在使用它来管理两个具有不同版本的 Ruby 和单独的 gem 集的项目。它运作良好。

于 2012-08-08T14:55:22.683 回答
4

bundler 在本质上使用GemfileGemfile.lock文件为您通过前缀为的命令访问的特定项目创建“gemset”bundle exec

于 2012-01-14T22:09:25.870 回答
1

这可能与 rbevn 使用垫片的方式有关。您可能想查看 https://github.com/carsomyr/rbenv-bundler

于 2012-01-15T00:22:36.897 回答
1

尝试将chgems与 Bundler 一起使用。chgems 就像RubyGems 的chroot。它使用 生成一个新的子外壳PATHGEM_HOMEGEM_PATH更新为$project/.gem/$ruby/$version用作主要外壳GEM_HOME。由于所有 gem 都安装在项目目录中,因此项目后清理就像rm -rf $project/.

于 2012-11-21T07:08:18.900 回答