rbenv или bundler gemset-песочница? - PullRequest
1 голос
/ 15 января 2012

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

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 ]

5 голосов
/ 08 августа 2012

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

Настройка и установка rbenv, ruby-build, rubies, rbenv-gemset и bundler

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

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

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

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

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

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

4 голосов
/ 15 января 2012
Пакет

использует файлы Gemfile и Gemfile.lock, по сути, для создания "набора гемов" для конкретного проекта, к которому вы обращаетесь с помощью команд с префиксом bundle exec

1 голос
/ 21 ноября 2012

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

1 голос
/ 15 января 2012

Возможно, это связано с тем, как rbevn использует прокладки.Вы можете проверить https://github.com/carsomyr/rbenv-bundler

...