Rubyが初めてで、次の概念に頭を包み込もうとしています。バンドラーvs RVM vs gems vs RubyGems vs gemsets vsシステムrubと私は混乱しています。
Ubuntuの最新バージョンの新規インストールでこれをすべて管理する方法の「ベストプラクティス」を誰かに説明していただけますか?何をインストールする必要があり、どのようにすべてを使用する必要がありますか?
私はSudo apt-get install Ruby
は推奨されませんが、よくわかりません。私は「他のすべてのRuby stuff」に加えてシステムでそれを試しました。それは単に混乱を増しているだけです。Rails通常のRuby gems(Vagrant、Chef、scriptsなど)。
前の回答によると、これはカバーすることが非常に多いので、これを短い紹介と考えてください。
gemsはRubyライブラリのパッケージ方法です。それらはRubyに対するものであり、Javaに対するjarのことです。 gemファイル内には、Rubyコード(.rbファイル)だけでなく、テスト、および名前、依存関係、バージョンなどのgem自体に関する情報を提供する特別なファイルがあります( gemspec )。どのRubyプロジェクトでも、依存関係を宣言するだけでよい Gemfile を使用して、必要なgemを定義できます。 Rubygemsはパッケージマネージャーの名前です-パッケージをインストールするために使用されるツール(gemはパッケージそのものです)。 RubygemsはRubyの一部になりました。
Bundlerは、gemの管理に耐えられるものです。 Gemfileに基づいて、 bundle install を使用してbundlerを呼び出すだけで、必要なすべてのgemがダウンロードおよびインストールされます。標準のgemコマンドを使用すると、gem install <gem_name>
を使用して、それぞれを手動でインストールする必要があります。 BundlerはRubyの一部ではありません(それ自体は gemとしてパッケージ化されています )が、ほとんどのアプリケーションの「事実上の標準」です(使用していない人はあまりいません) 、実際に使用しない正当な理由はありません)。
[〜#〜] rvm [〜#〜]は、複数のバージョンのRubyマシン上で、必要に応じて切り替えます。これは、Ruby 1.8と1.9の両方、または「MRI」(MatzのRuby、デフォルト実装)と代替(JRubyやRubiniusなど)の両方をインストールするために使用できます。このフィールドではRVMだけではないことに注意してください。たとえば、 rbenv を参照してください。
RVMのgemsetは、特定のコンテキスト(通常はプロジェクト)に固有のgemのセットです。これは、たとえば、それぞれが独自のgemセットを持つさまざまなアプリケーションを開発していて、それらを分離したい場合に便利です。
システムRubyは、RVMを使用する場合、マシンにインストールされているRubyバージョンです(つまり、 RVM経由)。
始めたばかりの場合は、gemsとbundlerに興味があります。現時点では、RVMとgemsetを脇に置いておくことができます。
1つの質問で、スタックオーバーフローの範囲よりも多くの情報を求めています。それをすべてカバーするには本が必要です。
Ubuntuでは、Rubyの「システム」バージョンにgemを簡単にインストールおよび削除できるため、Sudo
を介して通常のgemをインストールおよび削除することに慣れてください。 (Mac OSでは、Apple bundles Ruby独自の使用のため、それを台無しにするのは素晴らしい考えではないため、異なるアドバイスをします。) gemのアイデア全体がどのように機能するかがわかっていて、システムに複数のRuby=バージョンが必要な場合は、 " rbenv "または " [〜#〜] rvm [〜#〜] "サンドボックスに1つまたは2つのバージョンをインストールします。
Linuxを使用すると、ディストリビューションを介してRubyを簡単に追加/削除できますが、ディストリビューションメンテナがパッケージ化したバージョンに制限されているため、通常はソースからインストールします。 Ruby開発、テスト、および本番システム用のいくつかのバージョン。そのため、 rbenv および [〜#〜] rvm [〜#〜] =発明された-汚れた詳細を処理するため、プログラミングに集中できます。
rbenv と [〜#〜] rvm [〜#〜] の両方を使用し、過去6か月ほどrbenvを使用して、良好な結果を得ています。私が好きなRVMよりも複雑ではありません。どちらの場合でも、異なるバージョンのGemsを使用して、異なるバージョンを簡単にインストールできます。必要に応じて、異なるターミナルウィンドウで別のRubyバージョンを開いて、互換性のテストを簡単にすることができます。
デバッグ時のルール1は、一度に1つずつ変更することです。これは、プログラミングの学習や新しい言語の学習に当てはまります。気を散らさないで、単純にしてください。