我知道捆绑安装有多个扩展,但究竟是什么:
bundle install --binstubs
与正常
进行比较 bundle install
答案 0 :(得分:1)
在此上下文中不确定扩展的含义,但不同之处在于bundle install --binstubs
创建了一个./bin
目录,并将该目录中的链接放置到您的gems安装的任何二进制文件中。例如,rspec gem附带rspec
二进制文件。为了确保在命令行输入正确版本的RSpec时,可以将项目特定的bin
目录放在shell的可执行搜索路径中。
Bundler试图在这里解决的问题是你可以安装多个版本的gem(比如rspec),你的shell需要一种方法来找到要执行的正确版本。一种解决方案是使用--binstubs
并更改您的PATH以在开头包含它(相对路径,这不是世界上最好的想法,或绝对路径,您必须为每个路径配置)项目)。
--binstubs
的替代方法是使用bundle exec
(如bundle exec rspec
)为所有gem命令添加前缀,以确保根据项目的Gemfile运行相应的版本,或者使用RVM和gemsets。
这有点复杂,在解释这个问题时,Bundler文档非常糟糕。