Как создать GEM_HOME для rvm?

2235
Michael

Я учусь устанавливать разные версии 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.

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

ура

3

1 ответ на вопрос

7
slhck

Что такое 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.

Огромное спасибо. Я столкнулся с другой проблемой при запуске сервера в этих новых настройках rvm. если бы у вас было время, я был бы очень благодарен. Я разместил вопрос на http://superuser.com/questions/340598/cant-find-sqlite3-in-this-ruby-rails-version-using-rvm Michael 13 лет назад 0
Я должен проверить завтра. Похоже на кеш или несовместимость, не уверен! slhck 13 лет назад 0
хорошо, большое спасибо, если у вас есть время завтра. Я ценю вашу помощь. Michael 13 лет назад 0
Также обратите внимание, что у каждого рубина также есть гемсет «по умолчанию», который вы получаете, когда вы не указываете гемсет по имени; и «глобальный» набор гемов, на который вы можете переключаться и устанавливать гемы, которые отображаются в _all_ гемсетах. Andrew Vit 13 лет назад 0

Похожие вопросы