前の回答によると、これはカバーすることが非常に多いため、これを簡単な紹介と考えてください。
gemは、Ruby ライブラリをパッケージ化する方法です。それらは Ruby にとって、Java にとっての jar と同じです。gem ファイル内には、Ruby コード (.rb ファイル) だけでなく、テストや、名前、依存関係、バージョン ( gemspec ) など、gem 自体に関する情報を提供する特別なファイルもあります。どの Ruby プロジェクトでも、依存関係を宣言するだけでよいGemfileを介して、必要な gem を定義できます。Rubygemsはパッケージ マネージャーの名前で、パッケージのインストールに使用されるツールです (gems はパッケージ自体です)。Rubygems は Ruby の一部になりました。
Bundlerは、gem の管理を耐えやすくするものです。Gemfile に基づいて、 bundle installを使用して bundler を呼び出すだけで、必要なすべての gem がダウンロードおよびインストールされます。標準の gem コマンドを使用すると、 を使用してそれぞれを手動でインストールする必要がありますgem install <gem_name>
。Bundler は Ruby の一部ではありません (それ自体が gem としてパッケージ化されています) が、ほとんどのアプリケーションにとって「デファクト スタンダード」です (実際には、これを使用していない人は多くなく、使用しない正当な理由はありません)。
RVMは、1 台のマシンに複数のバージョンの Ruby をインストールし、必要に応じて切り替えることができるツールです。これは、Ruby 1.8 と 1.9 の両方、または「MRI」(デフォルトの実装である Matz の Ruby) と代替 (JRuby や Rubinius など) をインストールするために使用できます。この分野では RVM だけではないことに注意してください。たとえばrbenvを参照してください。
RVMのgemsetは、特定のコンテキスト (通常はプロジェクト) に固有の gem のセットです。これは、たとえば、それぞれが独自の gem セットを持つさまざまなアプリケーションを開発していて、それらを分けておきたい場合に便利です。
system Rubyは、RVM を使用している場合、マシンにインストールされている (つまり、RVM 経由ではなく) Ruby のバージョンです。
始めたばかりの場合は、gem と bundler に興味があります。今のところ、RVM と gemsets は脇に置いておいてください。