Как использовать RVM и создавать глобально доступные драгоценные камни?

Я запускаю Mac OSX 10.6.4 и установил RVM. Это было здорово до сих пор, мне очень нравится, как он позволяет мне управлять несколькими версиями рельсов и рубинов на одной машине без головных болей!

Однако я не хочу устанавливать некоторые драгоценные камни (например, пассажирские) для каждой установки. Есть ли способ поделиться драгоценными камнями между гемзетами? У меня есть [email protected] и [email protected], могу ли я иметь драгоценные камни, такие как пассажирские, mysql и capistrano, установленные один раз и используемые со всеми версиями?

Ответ 1

Существует нечто, называемое глобальным gemset, и оно разделяется между всеми вашими гемзетами определенной рубиновой версии. Но вы не можете делиться драгоценными камнями между рубиновыми версиями.

Однако, что вы можете сделать, это создать список драгоценных камней, который будет установлен автоматически при добавлении новой рубиновой версии. Это описано здесь. Короче: отредактируйте файл с именем ~/.rvm/gemsets/global.gems, чтобы содержать список драгоценных камней, которые вы хотите найти для каждой рубиновой версии.

Надеюсь, что это поможет.

Ответ 2

С последней версией RVM (1.17.0 и новее) просто введите:

rvm @global do gem install passenger

или

rvm [email protected] do gem install passenger, если вам это нужно только для определенной версии ruby.

Ответ 3

Вы можете создавать и использовать глобальные гемзеты со следующими командами:

rvm gemset create global
rvm gemset use global

После того, как вы создали и выполнили использование глобального геммета, просто установите драгоценные камни, как обычно:

gem install mysql passenger

Ответ 4

добавьте драгоценные камни, которые вы хотите для каждого gemset, в "глобальном" имени gemset rvm i.e.

rvm [email protected]

тогда специфичные для проекта gemsets rvm [email protected] уже будут вашими "по умолчанию" камнями из вашего глобального списка

Ответ 5

В соответствии с документацией RVM на самом деле существует множество "глобальных" гемземов, которые могут быть определены на уровне rvm, на интерпретатор, на версию интерпретатора и, наконец, на определенном уровне исправления для каждого интерпретатора. И установлены каскады драгоценных камней от одного уровня к другому.

Ответ 6

Создайте и используйте глобальную жемчужину как:

rvm use <ruby version>@global --create

и установите драгоценные камни, которые вы хотите разделить между gemset:

bundle install <gem name>

но эти драгоценные камни могут быть разделены только между gemset той же версии Ruby.