Gemfile中针对Ruby版本的悲观Ruby运算符导致错误

时间:2019-02-26 12:00:12

标签: ruby

在我们的Gemfile中,我们具有以下内容:2.5.0

以便我们强制至少安装了2.6.0但在2.5.3p105以下

并且我们已经在服务器上安装了Ruby Your Ruby version is 2.5.3, but your Gemfile specified ~> 2.5.0来运行该应用程序...因此,我们处于Gemfile所需的版本之内。

但是,当我们启动Puma时,会看到错误:>= 2.5.0 && < 2.6.0

这怎么可能?悲观的运算符应该做到:

[the] ubuntu 18.04 widget in windows10

如果我们从Gemfile中注释掉该行,那么它将起作用...?

我们正在使用Bundler 1.17.3。

2 个答案:

答案 0 :(得分:3)

我们不完全确定问题是什么或对此的实际解决方法是什么...

但是基本上在尝试以下操作之后:ruby '>= 2.5.0', '< 2.6'如原始问题注释中所建议,我们遇到了此错误:

/usr/lib/ruby/vendor_ruby/bundler/ruby_dsl.rb:4:in '[]': (Bundler::Dsl::DSLError)
[!] There was an error parsing 'Gemfile': no implicit conversion of Symbol into Integer. Bundler cannot continue.
# from /srv/portal/releases/2019-02-21-15-55-45/Gemfile:1 
# ------------------------------------------- 
> ruby('>= 2.5.0', '< 2.6') 
# source 'https://rubygems.org' 
# -------------------------------------------

这使我们认为实际安装的Ruby出现了问题...因为在本地尝试使用它是很好的,而且我们还在其他服务器上进行了尝试,而且也没有问题。

因此,我们卸载了Ruby,删除了所有Gems,然后在我们运行的Ubuntu dist上进行了完整的软件包更新,然后重新安装了bundler和所有gems,它就开始工作了。。。围绕导致Ruby异常运行并且不了解如何正确使用Gemfile中的ruby方法的软件包之一导致上述问题。

希望如果有人遇到类似问题,这将会有所帮助...

答案 1 :(得分:0)

从捆绑程序指南中指定宝石:

  

gem“ rails”,“〜> 4.0.0”#与gem“ rails”,“> = 4.0.0”,“ <4.1.0”

也许显式形式会提供更好的结果?

有问题的指南指定它是为捆绑程序1.12编写的