3

Я учусь устанавливать разные версии ruby с разными версиями rails, используя rvm. Вот ссылка на инструкцию http://beginrescueend.com/gemsets/basics/. Это говорит

Скажем, например, что вы тестируете две версии гема с рубином 1.9.2. Вы можете установить один на головку по умолчанию 1.9.2, затем создать именованный набор гемов для другой версии и легко переключаться между ними. Пример: тестирование драгоценных камней

$ rvm 1.9.2-head@testing

will use a '1.9.2-head@testing' GEM_HOME (be sure to create it

первый), тогда как:

Я уже создал

rvm install 1.8.7-head
rvm install 1.9.2

но как мне создать этот rvm 1.9.2-head@testing.

Что-то я не понимаю в инструкциях ... Пожалуйста, уточните, если можете.

ура

1 ответ1

7

Что такое Gemset?

Я уже создал

rvm install 1.8.7-head
rvm install 1.9.2

При этом, вы установили два рубины (не Gemsets), а именно версии 1.8.7 и 1.9.2. Это (просто говоря) две версии интерпретатора / языка Ruby.

Теперь в каждой версии Ruby обычно установлено несколько Gems (Rails - один). Думайте об этом как о плагине. В обычном случае у вас есть только один набор плагинов для Ruby в вашей системе. Однако с помощью RVM вы можете настроить его на использование нескольких "Gemsets" для каждой версии Ruby. Таким образом, вы можете использовать несколько версий Ruby (например, Ruby 1.8.7 и 1.9.2) и использовать в каждой из них разные Gemsets.

В вашем случае, возможно, вы хотите иметь два набора Gemsets для каждой из ваших версий:

В дополнение к создаваемым вами наборам Gemsets, каждый Ruby также имеет наборы Gemsets "по умолчанию". Это тот, который вы получаете, когда вы не указываете имя Gemset при переключении. Все они разделяют один "глобальный" Gemset.


Как вы создаете Gemset?

Как вы создаете такой "тестовый" Gemset?

Согласно руководству, сначала переключитесь на версию Ruby, которую вы хотите использовать:

rvm 1.9.2

… А затем создайте Gemset, в вашем случае "тестирование". Часть о GEM_HOME , ну, забудьте об этом. В руководстве не упоминается, как его создать. Вы должны прочитать немного ниже к примеру:

rvm gemset create testing

Теперь ваш Ruby 1.9.2 будет иметь Gemset под названием "testing", который вы можете переключить с помощью

rvm 1.9.2@testing

Теперь любой Gem, который вы устанавливаете с помощью gem install будет находиться в этом конкретном Gemset. Если вы создадите другой Gemset (используя rvm gemset create) и переключитесь на него, ранее установленный Gem будет недоступен, так как вы сейчас работаете с другим Gemset.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .