2

Bundlerがgemでどのように機能するかは理解できたと思いましたが、最近何かが起こった後、それが正しいかどうかわかりません。

Railsアプリケーションを開発しています。最初に(そして、これまで作業したことのないRails環境に慣れるために)、IDEを使用しませんでした。しかし、IDEの利点のいくつかを見逃しているため、RubyMineを使い始めました。RubyMineのセットアップの一環として、既存のプロジェクトのすべてのgemを更新するように求められました。

その後、「rake[何でも]」を実行できなくなりました。毎回、次のエラーが発生しました。

すでにrake0.9.3.beta.1をアクティブ化していますが、Gemfileにはrake0.9.2.2が必要です。bundle execを使用すると、これを解決できる場合があります。

rakeの次のバージョンに更新しても大丈夫でした-それは問題ではありませんでした-しかし、そもそも何が起こったのかわかりません。新しいバージョンのレーキを「アクティブ化」したのはどうしたのか。最終的に、私は置くことによって問題を解決することになりました

gem 'rake', '0.9.3.beta.1'

私のGemfileで実行中

bundle update rake

しかし、ここで何が起こったのかはまだわかりません。以前に9.2.2を使用していた場合、なぜそのように突然爆発したのですか?将来それを防ぐにはどうすればよいですか?

4

2 に答える 2

5

Rubymineを使用している場合は、を使用してrakeタスクを実行するようにRubymineを構成する必要がありますbundle exec

[実行]->[構成の編集]->[デフォルト]->[レーキ]->[バンドル]タブに移動 し、[バンドルのコンテキストでスクリプトを実行する(bundle exec) ]をオンにします。

すでに作成されているすべてのタスクを削除すると、次にそれらを再度作成するときにデフォルトが適用されます。作成された各タスクを個別に構成することもできます。

于 2012-12-12T12:31:30.177 に答える
0

RVMまたはRbenvをインストールして使用し、rubyのバージョンとgemsetを管理することを実際に検討する必要があります。Rbenvの方法を使用する場合、rbenv-gemsetプラグインを使用して、RVMがネイティブに行うのと同様のgemsetを管理できます。

すでにrake0.9.3.beta.1をアクティブ化していますが、Gemfileにはrake0.9.2.2が必要です。bundle execを使用すると、これを解決できる場合があります。

bundle最後の実行からRubyMineのインストール/構成/実行までのある時点で、をインストールしておく必要がありますrake 0.9.3.beta.1。RVMやRbenvのようなgemsetを使用してgemを管理していないため、0.9.3.beta.1bundlerによってインストールされたバージョンの代わりにRakeのデフォルトバージョンになりました0.9.2.2

上記のエラーは、あなたGemfileが次のようなものを持っていたことを示唆しています

gem 'rake', '0.9.2.2'

これは、使用されているrakeのバージョンを。以外のものにすることを許可しません0.9.2.2

あなたが実際0.9.2.2にあなたのシステムに加えて持っていて0.9.3.beta.1、あなたが実行する代わりにのGemfileために構成されている場合0.9.2.2

rake some:task

あなたが実行することができます

bundle exec rake some:task

とバンドラーは、レーキsome:taskのバージョンを実行します。 RVMまたはRbenvの使用に関係なく、スルーバンダーで0.9.2.2見つかったgemに関連するタスクを実行することは良い習慣と見なされます。Gemfilebundle exec ...

あなたはbundle exec ここについて読むことができます。

于 2012-08-25T04:35:25.673 に答える