Как вы используете несколько версий рельсов с rbenv? - PullRequest
28 голосов
/ 16 января 2012

Можно ли использовать несколько версий рельсов с использованием rbenv (например, 2.3 и 3.1)?Это было легко с gemsets в rvm, но мне интересно, как лучше сделать это сейчас, когда я перешел на rbenv (также я ищу способ сделать это без rbenv-gemset).

Ответы [ 2 ]

54 голосов
/ 12 марта 2012

не уверен, что вы получили ответ на этот вопрос, но я подумал, что предложу то, что я сделал, и, похоже, это сработает.

Так что, как только вы установите rbenv, и вы используете его для установки конкретноговерсия ruby, вы можете установить несколько версий rails для этого ruby.

ШАГ 1. Установите любые версии rails для каждой версии ruby ​​

% RBENV_VERSION=1.9.2-p290 rbenv exec gem install rails --version 3.0.11

Используя префикс «RBENV_VERSION = 1.9.2-p290» в командной строке, вы указываете, с каким ruby ​​rbenv следует обращаться.

Затем, следуя команде «rbenv exec», выМожно установить рельсы.Просто используйте флаг версии, как в примере, чтобы указать, какую версию вы хотите.Не уверен, что вы можете установить несколько версий за один снимок, но я просто запускаю эту команду столько раз, сколько необходимо для установки каждой версии, которую я хочу.

Примечание: Все это будет управляться в вашем каталоге rbenv, так что это совершенно безопасно и содержит.

ШАГ 2. Создайте новый проект rails, указав нужную версию rails.

% RBENV_VERSION=1.9.2-p290 rbenv exec rails _3.0.11_ new my_project

ШАГ 3. Не забудьте зайти в этот проект и установить локальную версию ruby ​​rbenv.

% cd my_project
% rbenv local 1.9.2-p290

Теперь, если вы хотите удалить этот проект, просто удалите его как обычно.

Если вы хотите удалить / управлять версией rails из гемов rbenv, вы можете использовать обычные команды гемов, просто добавьте к командной строке префикс:

% RBENV_VERSION=1.9.2-p290 rbenv exec gem {some command}

И, конечно, вы можетеудалить полную версию ruby ​​и все ее прокладки и т. д., которые довольно легко управляются в rbenv.Мне нравится, как самодостаточно все.

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

Для справки, это довольно хороший обзор хотя бы некоторых из этих вещей:

http://ascarter.net/2011/09/25/modern-ruby-development.html

22 голосов
/ 02 мая 2014

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

Я обычно управляю версиями Rails с помощью Bundler, как предложил Натан в комментариях к одному из других ответов. Я создаю Gemfile с желаемой версией Rails, запускаю bundle install, создаю приложение Rails, позволяю ему заменить Gemfile и позволяю Bundler вступать во владение:

mkdir my-rails-app
cd my-rails-app
echo "source 'https://rubygems.org'" > Gemfile
echo "gem 'rails', '3.2.17'" >> Gemfile
bundle install

bundle exec rails new . --force --skip-bundle
bundle update

Если вам нужны подробности, я написал статью в моем блоге об этом.

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

...