怎么用 binstubs 避免输入bundle exec

场景:

以rack为例,假设项目的rack有两个不同的版本(1.6.5, 2.0.1)。

在运行项目时,会默认先加载 2.0.1版本的rack,这个时候依赖1.6.5版本的gem就炸了,比如sinatra。

Then you will see :

! Unable to load application: Gem::ConflictError: Unable to activate sinatra-1.4.8, because rack-2.0.1 conflicts with rack (~> 1.5)

解决方案

  1. 去掉 2.0.1版本的gem,但这样解决不high
$ gem uninstall rack -v 2.0.1
  1. 使用 binstubs
  • 用 bundle install --binstubs 替代 bundle instal
  • 执行后,将会出现一个bin目录
  • 用./bin 的方式启动 (如 ./bin puma -p 8989)

你可能感兴趣的:(怎么用 binstubs 避免输入bundle exec)