簡體   English   中英

rbenv或捆綁器gemset沙箱?

[英]rbenv or bundler gemset sandboxing?

rbenv文檔指出,如果不使用捆綁程序,則可以使用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文件,因此這很簡單。

捆綁程序中是否存在我不知道的沙箱功能,或者我誤解了文檔?

我找到了這個清晰的,有據可查的解決方案:

設置並安裝rbenv,ruby-build,ruby,rbenv-gemset和bundler

現在,當您安裝gem(請參閱下面的“捆綁程序”部分)時,它將進入您的helloset gem區域。

您可以結合使用多個寶石集。

此設置的最大好處是使每個項目都可以使用一組不同版本的不同寶石。

閱讀標題為“ Enable RVM-style “gemsets” (optional)

它使用rbenv插件用於gemset: https : //github.com/jamis/rbenv-gemset

更新8/12/2012
我正在用它來管理兩個使用不同版本的Ruby以及單獨的gem的項目。 它運作良好。

捆綁程序使用GemfileGemfile.lock文件為您通過以bundle exec Gemfile.lock命令訪問的特定項目創建一個“ gemset”

嘗試將chgems與Bundler 一起使用。 chgems就像RubyGems的chroot一樣。 它產生了一個新的子Shell,其PATHGEM_HOMEGEM_PATH已更新為使用$project/.gem/$ruby/$version作為主要的GEM_HOME 由於所有gems都安裝在項目目錄中,因此在項目執行后清理就像rm -rf $project/一樣容易。

可能與rbevn使用墊片的方式有關。 您可能想查看https://github.com/carsomyr/rbenv-bundler

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM