[解決済み] bundler vs RVM vs gems vs RubyGems vs gemsets vs system ruby [closed].
質問
私はRubyの初心者で、次の概念を理解しようとしています: bundler vs RVM vs gems vs RubyGems vs gemsets vs system rub and I'm confused.
どなたか、最新バージョンの Ubuntu の新鮮なインストールで、どのようにこのすべてを管理すべきかの「ベストプラクティス」を説明していただけませんか?何をインストールすべきか、そしてどのようにそれをすべて使用すべきか。
私が推測するところでは
sudo apt-get install ruby
を行うことは推奨されないと推測しますが、私は確信していません。私は「他のすべてのRubyのもの」に加えて、私のシステムでそれを試しました。私の混乱に拍車をかけています。私はRailsについてではなく、通常のRuby gems(例:Vagrant、Chef、スクリプト)について話しています。
どのように解決するのですか?
前の回答のように、これはかなりカバーすることが多いので、これは短い紹介だと考えてください。
宝石 は、Rubyのライブラリのパッケージ化方法です。Rubyにとってのjarは、Javaにとってのjemです。gemファイルの中には、Rubyのコード(.rbファイル)、テスト、そしてgem自体の情報(名前、依存関係、バージョンなど)を提供する特別なファイル( gemspec ). どの Ruby プロジェクトも、必要な gem を Gemfile を使って、必要なgemを定義することができます。 Rubygems はパッケージマネージャの名前で、パッケージをインストールするためのツールです (一方、gems はパッケージそのものです)。Rubygems は現在 Ruby の一部となっています。
バンドラー
は、Gem の管理に耐えられるようにするものです。Gemfile に基づいて、bundler をシンプルに呼び出すと
バンドルインストール
で bundler を呼び出すだけで、必要な gem がすべてダウンロードされインストールされます。標準的な gem コマンドを使用する場合、それぞれを手動でインストールする必要があります。
gem install <gem_name>
. BundlerはRubyの一部ではありません(それ自体は
gemとしてパッケージ化されています。
としてパッケージ化されています)、ほとんどのアプリケーションで事実上の標準となっています(実際、これを使わない人はあまりいませんし、使わない理由もありません)。
RVM は、一つのマシンに複数のバージョンの Ruby をインストールし、必要なときに切り替えて使うことができるツールです。Ruby 1.8と1.9、あるいはMRI"(Matz Ruby、デフォルトの実装)とJRubyやRubiniusなどの代替バージョンをインストールすることが可能です。なお、この分野ではRVMだけではありません。 rbenv .
A 宝石セット RVMにおけるgemsetは、特定のコンテキスト(通常はプロジェクト)に固有のgemsのセットです。これは、例えば、異なるアプリケーションを開発していて、それぞれが独自のgemsセットを持っていて、それらを別々に管理したい場合に便利です。
システム Ruby は、RVMを使用する場合、マシンにインストールされているRubyのバージョンです(つまり、RVM経由ではありません)。
これから始める人は、gems と bundler が気になるところです。RVMとgemsetsはとりあえず置いておいてください。
関連
-
[解決済み] RVM (Ruby Version Manager) をシステムから削除する方法
-
[解決済み] 旧バージョンのRuby gemsをアンインストールする
-
[解決済み] Rubyの文字列の中から"˶‾‾‾˵"を削除するにはどうしたらいいですか?
-
[解決済み] key => "value"`と`key: "value"`のハッシュ表記に違いはありますか?
-
[解決済み] ハッシュの配列をハッシュの値でソートするにはどうしたらいいですか?
-
[解決済み] このタスクを実行するには、Ruby と Sass をインストールし、PATH に配置する必要があります」という警告を解決するには?
-
[解決済み] Rubyのsend()は何をするのですか?
-
[解決済み] 最大値のハッシュのキーはどのように見つけるのですか?
-
[解決済み] Ruby: 文字列の最初の文字を取得する方法
-
[解決済み] ルビー 負の数を正の数に変換する?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] レスキューVSシドキック?[クローズド]
-
[解決済み] Rubyの継承とミキシンの比較
-
[解決済み] Hash each ループでインデックスにアクセスすることは可能ですか?
-
[解決済み] key => "value"`と`key: "value"`のハッシュ表記に違いはありますか?
-
[解決済み] Rubyオプションのパラメータ
-
[解決済み] 2つのハッシュを比較するにはどうすればよいですか?
-
[解決済み] Rubyでモジュール変数を作成する
-
[解決済み] 今月の名前(Date.today.monthをnameに変換)。
-
[解決済み] Rubyで本当に安いコマンドラインオプションのパース
-
[解決済み] Rubyのオフ・ザ・レール