web-dev-qa-db-ja.com

RVMを使用して、グローバルに利用可能なgemを作成するにはどうすればよいですか?

Mac OSX 10.6.4を実行していますが、RVMをインストールしています。これまでのところ素晴らしく、同じマシン上で頭痛のないRailsとRuby!

ただし、セットアップごとに特定のgem(パッセンジャーなど)をインストールする必要はありません。 gemset間でgemを共有する方法はありますか? [email protected]と1.9.2@Rails3がありますが、パッセンジャー、mysql、capistranoなどのgemを一度インストールしてすべてのバージョンで使用できますか?

59
GiH

グローバルgemsetと呼ばれるものがあり、特定のRubyバージョンのすべてのgemsetで共有されます。ただし、Rubyバージョン間でgemを共有することはできません。

ただし、できることは、新しいRubyバージョンを追加するときに自動的にインストールされるgemのリストを作成することです。これについては here で説明されています。 ~/.rvm/gemsets/global.gemsと呼ばれるファイルには、各Rubyバージョンで必要なgemのリストが含まれています。

それが役に立てば幸い。

64
nathanvda

最新のRVMバージョン(1.17.0以降)では、次のように入力します。

rvm @global do gem install passenger

または

rvm 1.9.3@global do gem install passenger特定のバージョンのRubyでのみ必要な場合。

57
yas375

次のコマンドを使用して、グローバルgemsetsを作成および使用できます。

rvm gemset create global
rvm gemset use global

グローバルgemsetの使用を作成して実行したら、通常どおりgemをインストールします。

gem install mysql passenger
31
ennuikiller

すべてのgemsetに必要なgemを「グローバル」なrvm gemset名に追加します。

rvm 1.9.2@global

次に、特定の宝石セットを投影しますrvm 1.9.2@myProjectは、あなたがすでにあなたのグローバルリストから「デフォルト」の宝石を持っているでしょう

3
Justin Soliz

グローバルgemを次のように作成して使用します。

rvm use <Ruby version>@global --create

そして、gemset間で共有したいgemをインストールします。

bundle install <gem name>

ただし、これらのgemは同じRubyバージョンのgemset間でのみ共有できます。

3
Ramiz Raja

RVMのドキュメントによると、実際にはrvm全体のレベル、インタープリターごと、インタープリターバージョンごと、そして最終的にインタープリターごとの特定のパッチレベルで定義できる「グローバルな」gemsetがいくつかあります。そして、インストールされたgemは、あるレベルから次のレベルにカスケードします。

2
Jase