捆绑安装扩展?

时间:2013-01-23 22:51:07

标签: ruby-on-rails

我知道捆绑安装有多个扩展,但究竟是什么:

 bundle install --binstubs

与正常

进行比较
 bundle install 

1 个答案:

答案 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文档非常糟糕。