1. ホーム
  2. ruby

[解決済み] bundler vs RVM vs gems vs RubyGems vs gemsets vs system ruby [closed].

2022-09-25 04:27:37

質問

私は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はとりあえず置いておいてください。