2

Ruby on Rails の非常に基本的な概念を理解したいと思います。私は新しい Rails アプリケーションを作成するたびに、gemset を作成し、そのgemset に gem をインストールしていました。あるとき、友人になぜそうするのかと尋ねられたことがありますが、私は彼にはっきりと理解させることができませんでした。

同じRubyバージョンで2つのプロジェクトがあり、両方が特定のgemの異なるバージョンを必要とする場合ですか? 両方ともデフォルトの gemset を使用しているします。競合が発生するため、この gem の両方のバージョンをデフォルトの gemset にインストールすることはできませんか? 間違っている場合は修正してください。

4

3 に答える 3

1

gemset とは、RVM Gemsets のことですよね? RVM Gemsetは、システムと相互の Ruby セットアップを区分化しました。これは、たとえば複数の Rails プロジェクトがある場合に非常に役立ちます。各プロジェクトには、同じ gem の異なるバージョンが必要になる場合があります。

ただし、Bundler を使用している場合は、RVM Gemsets を使用する必要はありません。コマンドbundle execの先頭に を付けると、プロジェクトの Gemfile のコンテキストで実行されます。

参考文献

于 2016-06-18T09:38:35.960 に答える
0

とても興味深いクエストです。

gemset is = ハードドライブのスペースの種類と考えることができます

全行程をお見せします。

Ruby のバージョンが異なる複数のプロジェクトがある場合は、競合を避けるために rvm を使用する必要があります。そのためには、RVM (Ruby バージョン マネージャー) を使用する必要があります。手順:

1) rvm をインストールします 2) rvm をインストールした後、ruby バージョンを使用する必要があります ex: システムに複数の ruby​​ がインストールされている場合は、そのうちの 1 つを選択します

rvm --デフォルトで使用するバージョン

たとえば、ruby 1.9.X の 2 つのプロジェクトと 2.0.X の他のプロジェクトがあるとします。

したがって、この状況で rvm を使用していない場合、競合が発生する可能性があるため、以下のような新しい gemset を作成する必要があります。

例: rvm gemset create demo rvm gemset use demo

そのため、現在、gemset demo を指しています

今は既に ruby​​ をインストールしていますが、この gem にはレールがないので、レールと他の gem をインストールする必要があります。

結論は、Ruby バージョン間の競合を避けるために gemset を使用するということです。

于 2016-06-18T13:20:28.423 に答える