在我们的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。
答案 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编写的