【问题标题】:omniauth requires Ruby version >= 2.1.9. issue while installing gem fileomn​​iauth 需要 Ruby 版本 >= 2.1.9。安装 gem 文件时出现问题
【发布时间】:2017-12-07 21:35:39
【问题描述】:

键入“bundle install”后出现错误,Ruby 版本存在某种问题。到目前为止,已经安装了很多 gem,并且从未遇到与 Ruby 版本不兼容的问题。

在不将应用置于“风险”的情况下,升级 Ruby 版本以通过“捆绑安装”回到正轨的最佳方法是什么?

这是我所做的:

第一次 - 将 twitter omniauth gem 添加到我的 gemfile。

第二次 - 在 app/config/initializers 文件夹中创建了一个 omniauth.rb 文件。

3rd - 键入“bundle install”命令并收到以下错误:“omniauth requires Ruby version >= 2.1.9.”

【问题讨论】:

  • Ruby 版本要求已添加到 gem 的 v1.5.0 版本中 - 所以您现在可以只使用 v1.4.2
  • 但如果您问“我如何迁移应用程序”,那么答案就很明显了——一步一步,经过大量测试!然而,这是一个非常广泛的问题,远远超出了 StackOverflow 答案的范围。
  • 不,我不是在问如何迁移应用程序。我只想能够安装gem,就是这样。如果我需要更新 Ruby 版本,那就这样吧。怎么会呢?我写了«gem install omniauth -v '1.4.2'» 并且从来没有......一旦我安装了捆绑包,我一遍又一遍地收到同样的错误。

标签: ruby-on-rails ruby rubygems omniauth gemfile


【解决方案1】:

依赖项可以在其.gemspec 文件中指定required_ruby_version。在这种情况下,您的一个子依赖项(omniauth - omniauth-oauth 的子依赖项,它又是omniauth-twitter 的子依赖项)有这样的要求since v1.5.0

要获得有效的安装,您有两个选择:

  1. 通过将gem "omniauth", "~> 1.4.2" 添加到您的 Gemfile 来固定到旧版本的 omniauth。这将确保 Bundler 使用旧版本的omniauth。 但是,这可能会导致与其他 gem 的冲突,让您遇到同样的问题 - 实际上,这可能是 Bundler 没有自动尝试安装旧版本的原因。

  2. 更新您的 Ruby 版本。如果您的应用程序中有.ruby-version 文件,请将那里的版本更新为2.1.9。同样,如果您的 Gemfile 中有 ruby "..." 行,也请更新它。您可能还需要在本地安装新版本的 Ruby - 使用 rbenv,您可以使用 $ rbenv install 2.1.9,或者如果您使用 RVM,请尝试使用 $rvm install 2.1.9

我的建议是选项 2(更新您的 Ruby 版本)。

【讨论】:

    猜你喜欢
    • 2014-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-03
    • 2014-10-18
    • 1970-01-01
    • 2010-11-18
    相关资源
    最近更新 更多