web-dev-qa-db-ja.com

rbenvで複数のRailsバージョンをどのように使用しますか?

Rails using rbenv(eg 2.3 and 3.1))の複数のバージョンを使用することは可能ですか?これは、rvmのgemsetsで簡単でしたが、今それを行うための最良の方法は何ですか?私はrbenvに切り替えました(また、rbenv-gemsetなしでそれを行う方法を探しています)。

29
aciniglio

あなたがこれに対する答えを得たかどうかはわかりませんが、私は私がやったことを提供すると思い、それはうまくいったようです。

そのため、いったんrbenvをインストールし、それを使用して特定のRubyバージョンをインストールすると、そのRuby用にRailsの複数のバージョンをインストールできます。

STEP 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」コマンドを使用して、Railsをインストールできます。例のようにバージョンフラグを使用して、必要なバージョンを指定します。複数のバージョンを一度にインストールできるかどうかはわかりませんが、必要な回数だけこのコマンドを実行して、必要な各バージョンをインストールします。

注:これはすべてrbenvディレクトリ内で管理されるため、完全に安全で含まれています。

STEP 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 gemsから削除/管理する場合は、通常のgemコマンドを使用できます。コマンドラインの前に次のように追加します。

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

そしてもちろん、rbenv内で管理されている完全なRubyバージョンとそのすべてのシムなどをかなり簡単に削除できます。自己完結型のものが好きです。

お役に立てれば。

参考までに、これは少なくともこのようなもののかなり良いウォークスルーです:

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

54
Nathan

rbenv-gemset と呼ばれるrbenvプラグインがあり、これはrvm gemset-コマンドと同様に動作するはずですが、rbenvがこのように機能することを意図していないため、私は試していません。

私は通常、RailsバージョンをBundlerで管理します。ネイサンが他の回答のコメントで提案したとおりです。希望するRailsバージョンでGemfileを作成し、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

もっと詳しく知りたければ、 私のブログの記事 と書いた。

それが役に立てば幸い!

22