2011-08-11 7 views
6

私はRails 2で書かれたプロジェクトの作業を開始しています.Rakeの古いバージョンが必要なようです。これは私のグローバルなgemsetでRuby 1.8.7です。私は、この1つのアプリのためだけに、グローバル1.8.7のレーキをアンインストールしないようにしたいと思います。RVM:グローバルから継承しないgemsetを作成しますか?

とにかく、グローバルなgemsetを無視するgemsetを作成できますか?

編集:私が避けたいと思う最も明白な解決策は、グローバルジェムセットから宝石をアンインストールすることです。私の特別な状況では、私は従来のアプリケーションでいくつかの作業を開始しました。これはrake 0.9.3や私のデバッグの宝石(awesome_print、hirb、wirbなど)のような宝石で壊れます。私の現在の解決策(以下のコメント)はハックですが、私が望むもののための仕事量は最も少ないようです。私は、私が知らなかった宝石類の例外コマンドがあることを期待していました。

+0

私の現在の解決策:一番新しいパッチレベルをインストールしてください。現在は1.8.7-p299です。私のメインは1.8.7-p352です。これは、p299とp352インタプリタがグローバルな宝石セットを共有しないために機能します。しかし、ハックのような感じがします。だから、もし可能であれば、もっとクリーンなソリューションを見たいと思っています。 –

答えて

-2

はいできます。 rvm gemset create {gemset_name}を実行する必要があります。 これは空のgemsetを作成します。そこには宝石をすべてインストールする必要があります(gem install ...、sudoなし)。

+0

私は 'rvm gemset create {test}'を実行しましたが、{test} gemはまだグローバルジェムセットから宝石を継承します。 –

+0

それは...ブラケットなしで実行するべきではない –

+0

私はあなたが間違っていると思います。 RVMはあなたがインストールしたすべてのインタプリタ用にグローバルなgemsetを作成します。つまり、[email protected]です。このインタプリタにインストールされたすべてのgemsetには、グローバルgemset内に独自のgem * plus *宝石があります。私がしたいのは、グローバルから1つ以上の宝石を無視する1つの単一のジェムセットをインストールすることです。 –

1

新しく作成したgemsetですべてのgem(ローカルとグローバル)を削除するにはrvm gemset empty testを実行できるはずです。bundle installはgemfileの宝石のみをインストールします。

+1

これは便利ですが、 'rvm gemset empty'はグローバルジェムセットに最初に切り替えない限り、グローバル宝石を削除しません。これは私が現在持っているものよりも少ないスパゲティ・イッシュ・オプションなので、面白いです。同じコア宝石/バージョン(つまり、レーキ、ルビーデバッグなど)を必要とするN個のプロジェクトの場合、N個のプロジェクトのために宝石を再インストールする必要があります。 –

関連する問題