2011-01-05 11 views
63

もう一度質問する前に "Relationships between Rubygems, Bundler, and RVM"と読みます。Rubygems、Bundler、RVMの混乱

Rubygems、RVM、Bundlerと協力していると答えた人は、こういった疑問がたくさんあります。

私たちが宝石をインストールするときに、3人がどのように孤立して動作するのかと本当に混乱しています。あなたの仕事の仕方を教えてください。それは助けになりますが、私たちが遊ぶときに何が起こっているのかを知ることはありません。

私の混乱は、これらの質問に分解することができます。次の場合にインストールされる宝石はどこですか?

  1. 私はRubygems(RVMまたはBundlerなし)を持っていますか?
  2. RubygemsとRVMがインストールされていますか?
  3. Rubygems、RVM、Bundlerがインストールされていますか?

ウェブ上のリソースまたは詳細な回答でこの情報を理解してください。

答えて

38
  1. 宝石がどこにインストールされているか調べるには、端末にecho $GEM_HOMEを実行してください。
  2. RVMを使用している場合、$ GEM_HOMEが変更されると、gemがRVMインストールにインストールされます。 echo $GEM_HOMEを実行すると、RVMインストールへのパスが表示されます。
  3. Bundlerをミックスに追加すると、宝石は$GEM_HOMEにインストールされます。または、実行時にパスを指定すると、bundle installがそのパスにインストールされます。 Bundlerを介して宝石がどこにあるかを調べるには、bundle show gemnameを使用してフルパスを得ることができます。
+7

#2を実行するためのfyiも便利です - 現在使用されているruby + ruby​​gems環境全体を表示します。 – ffoeg

4

gem envを使用して、各コンテキストのgemパスをリストします。

RVMなしgem envはシステムのgemライブラリパスを報告します。

RVM gem envを使用すると、RVM管理のgemライブラリパスが報告されます。

Bundlerはアプリケーションの依存関係を管理し、ご使用の環境のgemライブラリにインストールします。 RVM + Bundlerを使用している場合、宝石はRVM管理されたgemディレクトリにインストールされます。 RVMを使用しないで使用している場合、bundlelerはシステムのgemディレクトリに宝石をインストールします。

0

また、どのように動作するかを理解しようとしています。ブログ "Advice on using Ruby, RVM, Passenger, Rails, Bundler, … in development"は、私がより良い概観を持つのを助けました。

ところで、フランス語の記事の翻訳ですが、フランス語の方が優れています。宝石を使用することをインストールされているパスを見つけるために

0

gem which gem_name 

(html2hamlのような)実行可能ファイルを検索するには、使用:

which executable_name 

をバンドラーチームによって推奨されbundle exec html2hamlを入力しないようにするには、私のrubygems-bundler gemを使用してください。