如何控制运行bundle时使用哪个版本的Ruby

时间:2017-04-19 23:42:36

标签: ruby rubygems bundler

在包含所有文件的〜/ src / project /中,我正在尝试运行bundlebundle install,但它告诉我需要一个名为“buff-extensions”的宝石和那个宝石安装程序需要Ruby版本> = 2.2.0才能正常工作。

当我运行ruby --version时,它表示从该目录运行时正在使用Ruby 2.2.4p230。

我知道机器上有几个版本的Ruby在几个地方,我正在努力遵循这些路径并找出哪种技术正在使用哪一块。

2 个答案:

答案 0 :(得分:1)

Bundler docs拼写出来:

  

您可以使用rubyGemfile中指定所需的Ruby版本。如果在不同的Ruby版本上加载ruby '1.9.3' ,Bundler将引发一个带有解释的异常。

:engine
  

这意味着此应用程序依赖于与1.9.3兼容的ABI的Ruby VM。如果版本检查不匹配,Bundler将引发异常。这将确保运行代码匹配。您可以使用:engine_versionruby '1.9.3', :engine => 'jruby', :engine_version => '1.6.7' 选项更加具体。

{{1}}

答案 1 :(得分:0)

我终于想出了确切的咒语以获得预期的结果,我现在意识到期望任何陌生人试图回答这种情况是不合理的。

它涉及chef,我应该运行chef exec bundle