Ruby Version Manager: приручаем gemset или Установка нескольких версий Rails
июля 12, 2010 | Published in Ruby, Ruby Gems, Ruby on Rails | 2 Comments
Как и обещал, еще одна статья об RVM.
Одной из самых мощных и полезных вещей в RVM являются наборы gem’ов — gemsets. Gemset представляет собой отдельную директорию для gem’ов, таким образом, что не возникает конфликта между одноименными gem’ами в разных gemset’ах. Gemset’ы, или наборы gem’ов, предоставляют на удивление полезную возможность использовать сразу несколько версий одного и того же расширения Ruby, например использовать несколько версий Rails. Так же с их помощью вы можете проверить как хорошо работает ваше приложение при различных конфигурациях gem’ов.
В предыдущей статье мы уже обсуждали установку и использование RVM, таким образом, вы наверняка уже установили несколько версий Ruby. В этой статье мы поговорим о том, как установить несколько версий Rails и как их использовать под различными реализациями и версиями Ruby.
Использовать наборы gem’ов просто, но для этого их необходимо сперва создать с помощью простой команды:
rvm use 1.8.7
rvm gemset create rails3
info: Gemset ‘rails3′ created.
Как вы догадались этой командой мы создали gemset с именем rails3.
Для того, чтобы посмотреть список доступных наборов gem’ов воспользуйтесь командой:
rvm gemset list
info: gemsets : for ruby-1.8.7-p174 (found in /egoholic/user/.rvm/gems/)
global
rails3
Gemset с именем global является общим для всех версий и реализаций Ruby и используется по умолчанию, когда gemset для использования в текущей версии Ruby не определен.
Примечание: создаваемые gemset’ы доступны только для текущей реализации и версии Ruby. В начале мы объявили, что следует переключиться на версию MRI 1.8.7, поэтому набор rails3 будет доступен только для этой версии, но это не мешает вам переключится на другую версию и создать одноименный gemset, в который также установите Rails 3.
Для того, чтобы выбрать gemset из списка и использовать его воспользуйтесь командой:
rvm gemset use rails3
info: Now using gemset ‘rails3′
Теперь давайте установим Rails 3 в текущий набор gem’ов rails3:
gem install rails —pre
Посмотреть список gem’ов в текущем gemset’е можно с момощью стандартной команды менеджера управления расширениями Ruby — RubyGems:
gem list
Теперь давайте создадим еще один gemset и установим в него текущую стабильную Rails 2.3.8:
rvm 1.9.1
rvm gemset create rails238
info: Gemset ‘rails238′ created.
rvm gemset use rails238
info: Now using gemset ‘rails238′
gem install rails
Теперь мы имеем gemset доступный для MRI 1.9.1 с установленными в него Rails 2.3.8.
Существует сокращенная команда переключения на другую версию Ruby с одновременным выбором используемого для работы набора gem’ов:
rvm 1.8.7@rails3
Символом @, как вы, наверное, догадались мы разделяем версию Ruby и название gemset’а.
Для удаления gemset’а следует воспользоваться командой:
rvm —force gemset delete rails3
, которая удалит набор rails3 без необходимости подтверждения.
Это не последняя статья об использовании RVM, в одной из следующий статей я расскажу о различных дополнительных и менее популярных возможностях RVM.
января 12, 2011 at 23:04 (#)
На шаге «gem install rails –pre» возникает ошибка:
ERROR: Loading command: install (LoadError) no such file to load — zlib
Лечить так:
rvm package install zlib
rvm remove 1.8.7
rvm install 1.8.7
января 12, 2011 at 23:47 (#)
Спасибо, Ilya. У меня тоже эта ошибка возникала правда только один раз и то под Win XP.