2017-06-22 141 views

回答

0

Bundle exec是一個Bundler命令。

你應該在所有的情況下都使用束exec,因爲

捆EXEC - 在捆綁的上下文中執行命令

更多信息可以在這裏找到:http://bundler.io/v1.15/bundle_exec.html

bin/rails可能會正常工作,但前提是系統上存在所有必需的gem/executables,但不包含該軟件包的作用域。

簡而言之,如果你的系統上安裝了所有的gem(比如全局的)bin/rails將會工作(但可能會產生衝突)。但是,如果您僅將它們安裝在捆綁包的範圍內,它們可能無法工作。

bundle exec確保正在使用您的Gemfile中的寶石及其版本。

+0

如何知道gem是否安裝在全球? –

+0

@ x-yuri您可以執行'bundle exec gem list'來顯示包含該包的範圍的gem列表。對於bundle之外的寶石,只需要exec'gem list'。 – Negnar

+0

我在'bundle exec gem list'的輸出中看到了'rails',然後我在'Gemfile'中降級了'rails'(結果我的系統至少有兩個版本的'rails',其中之一是在bundle中),當我運行'bin/rails --version'時,它會報告正確的('Gemfile'中的那個)。沒有衝突,沒有任何東西。我如何看出差異? –

相關問題