1

私はこのRailsチュートリアルセクションとこのRVMドキュメントページをフォローしています。私のインストールはすべて新しい(RVM 1.17.3)なので、チュートリアルとRVMドキュメントを正しく理解している場合は次のようになります。

  • RVMとBundlerはデフォルトで統合されているはずであり、何も構成する必要はありません。(実行する必要はありませんbundle --bunstubsか?)

  • 「bundleexec」と入力する必要はありません

私はその権利を読みましたか?

bundler_stubs/アプリケーションにまたはbin/ディレクトリが表示されません。

正しく設定されていることを確認して、bundle exec必要がないことを確認する方法はありますか?


編集:

実行whichすると、次のようになります。

$ bundle show rspec    
$ /home/{username}/.rvm/gems/ruby-1.9.3-p327@tutorial/gems/rspec-2.11.0
$ which rspec
$ /home/{username}/.rvm/gems/ruby-1.9.3-p327@tutorial/bin/rspec

bundle execそれらが同じではないので、私が使い続けるべきであることを意味するように思われますか?

4

2 に答える 2

2

RVM はデフォルトで gem https://github.com/mpapis/rubygems-bundlerをインストールします。これは、コンテキスト内にいるかどうかを検出し、Gemfile必要に応じてバンドラーを自動的にロードします。手動で入力するのと同じbundle execです。

于 2012-12-21T14:25:10.417 に答える
1

bundle execは、現在のバンドル (ディレクトリの Gemfile からのバンドル) のコンテキストでスクリプトを実行するバンドル コマンドです。rspec filename.rbがスクリプトです。

したがって bundle exec bundle exec rspec filename.rbは、現在のバンドルのコンテキストでコマンドrspec filename.rbを使用して rake スクリプトを実行します。

「なんで?」について。バンドラーのドキュメントから引用します。

場合によっては、実行可能ファイルがたまたまシステムにインストールされていて、バンドルと競合する gem を取り込まない場合、bundle exec なしで実行可能ファイルを実行するとうまくいくことがあります。ただし、これは信頼性が低く、かなりの苦痛の原因です。動作しているように見えても、将来または別のマシンで動作しない可能性があります。

詳細については、http: //gembundler.com/man/bundle-exec.1.htmlを参照してください。

于 2012-12-21T06:30:10.627 に答える