我们正在对MRI和JRuby进行一些A / B测试,以获得我们已经写过的微服务。
我需要我的服务器或任何本地开发人员使用指定版本的JRuby或MRI。
我已经阅读了Bundler's docs并认为我理解使用红宝石引擎会像这样使用:
platforms :jruby do
ruby '1.9.3', engine: :jruby, engine_version: '1.7.19'
gem 'bson'
end
platforms :ruby do
ruby '2.2.0', engine: :ruby, engine_version: '2.2.0'
gem 'bson_ext'
end
但是如果我$which ruby
我得到:.rvm/rubies/jruby-1.7.19/bin/ruby
然后运行bundle install
我得到:
Your Ruby engine is jruby, but your Gemfile specified ruby
如何在平台上使用bundler来指定特定于用户/服务器运行平台的ruby版本?
答案 0 :(得分:1)
截至当前Bundler
,您不能这样做,因为:platforms
仅适用于gem
声明...您可以得到的最接近的事情是"运行时"基于Ruby加载 Gemfile 的决策逻辑:
if defined? JRUBY_VERSION
ruby '1.9.3', engine: :jruby, engine_version: '1.7.19'
else
ruby '2.2.0', engine: :ruby, engine_version: '2.2.0'
end
platforms :jruby do
gem 'bson'
end
platforms :ruby do
gem 'bson_ext'
end