为什么在Bundler之外运行Guard是危险的?

时间:2012-01-21 19:07:45

标签: ruby-on-rails-3 bundler guard

当我运行bundle exec guard时,一切都是犹太洁食,但如果我尝试运行guard,我就明白了:

WARNING: You are using Guard outside of Bundler, this is dangerous and could not work. Using `bundle exec guard` is safer.

这是为什么?

1 个答案:

答案 0 :(得分:2)

来自bundler official site

  

运行捆绑包中附带gem的可执行文件

     

$ bundle exec rspec spec/models

     

在某些情况下,如果没有bundle exec运行可执行文件可能会有效   可执行文件恰好安装在您的系统中,而不是   拉入任何与你的捆绑冲突的宝石。

     

然而,这是不可靠的,并且是相当痛苦的根源。   即使它看起来有效,但它可能在将来或以后都无法使用   另一台机器。如果你想要一种方法来获得你的宝石快捷方式   束

     

$ bundle install --binstubs $ bin/rspec spec/models

     

安装到bin中的可执行文件的范围限定为bundle   一直工作

我不确定guard是否有任何具体内容,但一般来说,通过bundle exec运行所有宝石的可执行文件是一种很好的做法。可能他们只是决定警告开发人员,运行guard没有它可能会导致麻烦(例如,如果您的系统和guard中有Gemfile的不同版本。