输入“bundle install”后出现错误,但Ruby版本存在某种问题。到目前为止已安装了许多宝石,并且从未在Ruby版本中使用过。
升级Ruby版本以使用“捆绑安装”重新回到正轨而不将应用置于“风险”的最佳方法是什么?
这就是我所做的:
1st - 将twitter omniauth gem添加到我的gemfile中。
2nd - 在app / config / initializers文件夹中创建了一个omniauth.rb文件。
3rd - 键入“bundle install”命令并出现以下错误:“omniauth需要Ruby版本> = 2.1.9。”
答案 0 :(得分:0)
依赖关系可以在required_ruby_version
文件中指定.gemspec
。在这种情况下,你的一个子依赖项(omniauth-- omniauth-oauth的子依赖项,这又是omniauth-twitter的子依赖项)已经有了这样的要求since v1.5.0。
要获得有效的安装,您有两种选择:
通过向您的Gemfile添加gem "omniauth", "~> 1.4.2"
来固定旧版本的omniauth。这将确保Bundler使用较旧版本的omniauth。 然而,这可能会导致与其他宝石的冲突,让您遇到同样的问题 - 实际上,这可能是Bundler没有自动尝试安装旧版本的原因。
更新您的Ruby版本。如果您的应用中有.ruby-version
个文件,请将其版本更新为2.1.9
。同样,如果您的Gemfile
中有ruby "..."
行,也请更新。您可能还需要在本地安装新版本的Ruby - 使用rbenv可以使用$ rbenv install 2.1.9
,或者如果您使用RVM,请尝试$rvm install 2.1.9
。
我的建议是选项2(更新您的Ruby版本)。