为什么我应该使用bundle exec <command />而不是只运行命令?

时间:2012-01-17 07:24:20

标签: ruby-on-rails ruby-on-rails-3.1

使用bundle exec <command>而不仅仅是命令来运行可执行文件是众所周知的最佳实践。但似乎没有人能解释为什么通过bundle exec更好地运行可执行文件。所以我问你为什么,......?

1 个答案:

答案 0 :(得分:4)

如果您正在使用bundle exec而不是仅执行命令,则bundler会对您的环境变量进行一些更改,因此可以成功访问Gemfile中列出的所有gem。你可以看到http://gembundler.com/man/bundle-exec.1.html。此外,如果您使用bundle exec,捆绑商可以将宝石安装到自定义路径而不是系统位置,然后仍然可以访问 require 。另请参阅http://gembundler.com/man/bundle-install.1.html

因此,一般来说,答案是:将您的宝石集与系统宝石隔离开来,并在自定义宝石位置的情况下使它们可用于您的应用程序。