2013-01-23 52 views

回答

1

不确定在此上下文中扩展的含义,但区别在于bundle install --binstubs创建了./bin目录,并将该目录中的链接放置到您的gem安装的任何二进制文件中。例如,rspec gem附带一个rspec二进制文件。为了确保在命令行输入正确版本的RSpec时,可以将项目特定的bin目录放置在shell的可执行文件搜索路径中。

Bundler在这里试图解决的问题是,您可以安装gem的多个版本(如rspec),并且您的shell需要一种方法来找到要执行的正确版本。一种解决方案是使用--binstubs并更改PATH以将其包含在开头(相对路径,这不是世界上最好的想法,或绝对路径,您必须为每个项目配置)。

替代--binstubs是前缀bundle exec(像bundle exec rspec)所有宝石的命令,以确保适当的版本是基于项目的Gemfile中运行,或者使用RVM和gemsets。

这一切都有点复杂,Bundler文档在解释这个时非常糟糕。

+0

谢谢,吉姆。我应该把前缀而不是扩展名。在适当的术语方面我并不总是那么棒。 –