2017-06-22 7 views
0

私はbundlerでインストールされた宝石を持つRailsアプリを持っているとします。 bundle exec railsまたはbin/railsを使用する必要がありますか? bundle exec rakeまたはbin/rakeを使用する必要がありますか?違いはありますか?それらのうちのいずれかが他のものより優れていますか?`bundle exec`やRailsのbinstubsを使うべきですか?

答えて

0

バンドルexecはBundlerコマンドです。

あなたはそれ

バンドル-execのように、すべてのケースでは、バンドルexecを使用する必要があります

- バンドルのコンテキストでコマンドを実行し

詳細情報はここで見つけることができます:http://bundler.io/v1.15/bundle_exec.html

bin/railsが動作する可能性がありますが、必要なすべてのgems/executablesがバンドルのスコープなしでシステムに存在する場合のみです。

要するに、すべての宝石がシステムにインストールされている場合(グローバルに)、ビン/レールは機能しますが、競合が発生する可能性があります。ただし、バンドルのスコープ内にのみインストールした場合、動作しない可能性があります。

bundle execあなたのGemfileの宝石とそれらのバージョンが確実に使用されています。

+0

宝石がグローバルにインストールされているかどうかはどのように分かりますか? –

+0

@ x-yuri 'bundle exec gem list'を実行すると、バンドルの有効範囲を指定してgemリストを表示することができます。バンドルの外側にある宝石については、単に 'gem list'を実行してください。 – Negnar

+0

'bundle exec gem list'の出力に' rails'があり、 'Gemfile'で' rails'をダウングレードしています(結果的に私のシステムに少なくとも二つのバージョンの 'rails'があります。 'bin/rails --version'を実行すると正しいもの(' Gemfile'のもの)が報告されます。紛争も、何もない。どのように違いが見られますか? –

関連する問題