Можно ли использовать несколько версий рельсов с помощью rbenv (например, 2.3 и 3.1)? Это было легко с наборами драгоценных камней в rvm, но мне интересно, как лучше всего сделать это сейчас, когда я переключился на rbenv (также я ищу способ сделать это без rbenv-gemset).
Как вы используете несколько версий рельсов с rbenv?
Ответы (2)
не уверен, что вы получили ответ на этот вопрос, но я решил предложить то, что я сделал, и, похоже, это сработало.
Итак, как только вы установили 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. Не забудьте зайти в этот проект и установить локальную версию rbenv ruby.
% cd my_project
% rbenv local 1.9.2-p290
Теперь, если вы хотите удалить этот проект, просто удалите его как обычно.
Если вы хотите удалить или управлять версией rails из драгоценных камней rbenv, вы можете использовать обычные команды gem, просто добавьте к своей командной строке префикс:
% RBENV_VERSION=1.9.2-p290 rbenv exec gem {some command}
И, конечно же, вы можете удалить полную версию ruby, все ее прокладки и т. д., которые довольно легко управляются в rbenv. Мне нравится, что все самодостаточно.
Надеюсь это поможет.
Для справки, это довольно хороший обзор, по крайней мере, некоторых из этих вещей:
http://ascarter.net/2011/09/25/modern-ruby-development.html
Существует подключаемый модуль 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
Если вам нужны подробности, я написал статью в своем блоге а> об этом.
Надеюсь, поможет!