2017-04-19 39 views
0

在〜/ src/project /中包含所有文件,我试图运行bundlebundle install,但它告诉我需要一个名为“buff-extensions “并且gem安装程序要求Ruby版本> = 2.2.0才能正常工作。如何控制在运行bundle时使用哪个版本的Ruby

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

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

+0

您的问题很广泛。我建议删除有关其他技术的专栏,并针对该问题撰写一个明确的问题,因为这是一堆蠕虫。 –

+0

感谢您的建议。我不确定需要多少环境才能提供答案,所以我尽可能多地包含了我可能想到的内容。 – user7264887

回答

1

Bundler docs拼了这一点:

您可以ruby指定红宝石在Gemfile所需的版本。如果Gemfile在不同的Ruby版本上加载,则Bundler将引发一个异常并附带说明。

ruby '1.9.3' 

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

ruby '1.9.3', :engine => 'jruby', :engine_version => '1.6.7' 
+0

我试过了,把“ruby'2.2.4'”放在Gemfile中,它告诉我文档说我会得到同样的错误信息,“你的Ruby版本是2.0.0,但是你的Gemfile指定了2.2.4 ”。它看起来像Gemfile行被视为一个偏好,而不是一个命令。我尝试阅读更多这些文档,特别是页面及其后续链接,您发布了......如果在这些文档中有某种方法可以解决此问题,则无法找到它。 – user7264887

0

我终于想通了确切的咒语,以获得预期的结果,我现在认识到的情况是不合理的任何一个陌生人去尝试回答。它涉及chef,我本应该运行chef exec bundle

+0

:-)这就是我们学习的方式。以及我们如何学习如何与SO合作。一旦你经历了几次循环,就开始明白如何定义一个问题和所有需要的信息。我喜欢Jon Skeet的“[编写完美问题](https://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/)”和“[橡皮鸭问题解决]”(https:/ /blog.codinghorror.com/rubber-duck-problem-solving/)”。 –

相关问题