web-dev-qa-db-ja.com

特定のgemの異なるバージョンを「アクティブ化」するにはどうすればよいですか?

コマンドラインで呼び出すことができるように、OSの「アクティブな」gemとしてRails 2.3.10を切り替える必要があります。

これを行うことは可能ですか?私はrvmを使用していません。多分それは開始する時間です。

私は試した gem install Rails --version=2.3.10が、gemのバージョンがインストールされていることを確認するだけであり、/usr/bin/Rails

(アプリには既にbundlerを使用していますが、これまでOSレベルでgemを正確に制御する必要はありませんでした)

79
John Bachir

問題が特定のバージョンのバイナリを実行することである場合:

Rails --version # => the latest version
Rails _2.3.10_ --version # => Rails 2.3.10

このパターン(gem-binary _gem-version_)gemバイナリで動作します。

それが役に立てば幸い。

147
Daniel Vartanov

RVMを使用する

RVMを使用すると、RubyとGemsの異なるバージョンを管理できます。たとえば、次を使用して、Ruby

rvm install 1.9.2

その後、次を使用して使用できます。

rvm use 1.9.2

Gemsetを使用して、プロジェクトごとに特定のgemを使用します。

さらにネームスペースが必要な場合は、gemsetsをセットアップできます。特定のプロジェクトの特定のgemを含むディレクトリ。

rvm gemset create myproject

次のように使用できます:

rvm use 1.9.2@myproject

オートメーション

Gemの切り替えプロセスを自動化するには、プロジェクトルートに。Ruby-versionおよび。Ruby-gemsetファイルをポップします。 Rubyのバージョンとその内部で使用するgemsetの名前をポップします。RVMはプロジェクトディレクトリにcdするときに正しいgemsetを選択します。

Gemsetにgemをインストールする

Bundlerを使用している場合は、通常の方法でgemsをgemsetにインストールします。

bundle install

または単に通常の古いものを使用します:

gem install mygem

宝石は正しい宝石セットに入れられます。

RVMの代替

同様の仕事をするrbenvをチェックアウトすることもできます。

10
superluminary

[〜#〜] rvm [〜#〜] を使用できます

その後、 Bundler を使用して、gemの依存関係を適切に管理することもできます。

Gemfile

gem "Rails", "2.3.10"

そしてあなたのアプリケーションで

require 'rubygems'
require 'bundler/setup'

これで完了です。

7
Chubas

編集:投稿であなたのRVMの言及を見ました。間違いなく行く方法。

[〜#〜] rvm [〜#〜] をインストールする必要があります。これは、同じマシンでさまざまなRubyとさまざまなgemセットを管理できるすばらしいパッケージです。完全に簡単に切り替えることができます。

インストールガイドは次のとおりです。 http://rvm.beginrescueend.com/rvm/install/

すべてが起動したら、rvm listを使用してコマンドラインでインストール済みのルビーをすべて表示し、rvm use Ruby-headを使用して切り替えることができます。 RVMは、各Ruby=別に宝石を保持します。これは質問に役立つはずです。

3
Sam Ritchie