Использовать несколько версий rubygems с rvm? - PullRequest
17 голосов
/ 06 октября 2011

У меня есть два проекта на моем компьютере: - старое приложение Rails 2.3, которому требуется rubygems 1.6 и не будет работать под rubygems 1.8; - Более новое приложение, которое требует rubygems 1.8 и не будет работать под rubygems 1.6.

Каждый проект имеет свой собственный набор гемов rvm, но я не могу понять, как дать им разные версии rubygems:

  • gem update --system [version] приводит к тому, что gem --version дает одинаковый ответ обоим;
  • rvm gemset [версия] имеет тот же результат.

Как запустить rubygems 1.6.2 в одном проекте и 1.8.11 в другом?


Чтобы уточнить, вот что я хочу сделать :

  • В каталоге A есть .rvmrc с командами, которые выбирают gemset A и rubygems 1.6.2
  • В каталоге B есть .rvmrc с командами, которые выбирают gemset B и rubygems последней
  • Откройте два сеанса терминала одновременно, один в каталоге A, а другой в каталоге B
  • Введите "gem --version" в каталоге A и посмотрите "1.6.2"
  • Введите "gem --version" в каталоге B и посмотрите "1.8.11"

Ответы [ 2 ]

17 голосов
/ 09 октября 2011

Правильный способ заключается в создании различных именованных (-n) установок ruby, который вы хотите установить, и присваивайте им имена в соответствии с требуемой версией rubygem, например

rvm --install use 1.9.2-nrg186 && rvm rubygems 1.8.6 && gem --list
rvm --install use 1.9.2-nrg1810 && rvm rubygems 1.8.10 && gem --list

Причина этого в том, что в любой момент времени может быть активна только 1 версия рубинов. Это также связано с тем, что каждый ruby ​​определяет зависимость от конкретной версии rubygems, с которой известна или ожидается работа этой версии (независимо от того, может ли она работать с другой или нет).

Это ожидаемый способ справиться с требованием нескольких рубинов и устранить потенциальные проблемы. Подробности см. https://gist.github.com/1273035.

9 голосов
/ 06 октября 2011

RVM имеет новую функцию для этого:

используйте «rvm rubygems 1.6.2» для выбора этой версии rubygems."API RubyGems CLI" в нижней части страницы)

http://groups.google.com/group/rubyversionmanager/browse_thread/thread/e39fc7827d2d22e8

...