2012-01-14 2 views
1

Состояние rbenv документации, которые можно использовать в gemsets плагин для песочницы драгоценных камней, если вы не используете Bundler:rbenv или комплектная песочница для комплектации gemset?

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. 

Однако я использую Bundler и при переключении между проектами, которые имеют разный gemsets мне нужно для переуплотнения. Когда я использовал rvm, это было просто из-за файла .gemsets.

Есть ли в пакетере функциональность песочницы, о которой я не знаю или я неправильно понял документацию?

ответ

4

пакетирования использует Gemfile и Gemfile.lock файлы, в Ессенции, чтобы сделать «gemset» для этого конкретного проекта, который вы получаете доступ с помощью команд с префиксом bundle exec

+2

Но если я изменюсь между проектами, использующими гем-файлы bundler, у меня будет целая куча драгоценных камней, не относящихся к моему текущему проекту. Таким образом, набор gemset не эквивалентен песочнице gemset – Coderama

+0

Но у вас также не будет дублированных драгоценных камней, установленных в нескольких гематонах на одной машине без причины. В чем вред? Использование bundler & bundle exec не позволит вам получить доступ к этим «другим» драгоценным камням в любом случае – cpjolicoeur

+0

@Coderama Даже с песочницами, каждый раз, когда вам нужно обновить драгоценные камни в вашем Gemfile, у вас будут неиспользованные старые драгоценные камни. Я полагаю, кто-то мог написать сценарий очистки, чтобы очистить текущую песочницу, используя текущий Gemfile.lock ... но зачем беспокоиться? – Kelvin

5

Я нашел это ясное, хорошо документированное решение:

Setting up and installing rbenv, ruby-build, rubies, rbenv-gemset, and bundler

Теперь, когда вы драгоценный камень установки (см «Bundler» ниже) что-то, что будут идти в ваш драгоценный камень helloset.

Вы можете комбинировать использование нескольких гемзет с ним.

Большое преимущество этой установки позволяет каждому проекту использовать другой набор драгоценностей, выполненных по-разному.

Прочитать раздел, озаглавленный Enable RVM-style “gemsets” (optional).

Он использует плагин rbenv для gemset: https://github.com/jamis/rbenv-gemset.

Обновление 8/12/2012
Я использую это для управления двумя проектами с разными версиями Ruby и отдельными наборами драгоценных камней. Это работает хорошо.

1

Попробуйте использовать chgems с помощью Bundler. chgems похож на chroot для RubyGems. Он генерирует новую подклассу с PATH, GEM_HOME и GEM_PATH обновлен для использования $project/.gem/$ruby/$version в качестве основного GEM_HOME. Поскольку все драгоценные камни установлены внутри каталога проекта, очистка после проекта так же просто, как и rm -rf $project/.

Смежные вопросы