2017-07-04 41 views
0

在输入“bundle install”后出现某种Ruby版本问题后出现错误。迄今为止已经安装了许多宝石,并且从未与Ruby版本不兼容。omniauth需要Ruby版本> = 2.1.9。安装gem文件时出现问题

如何在不将应用程序置于“风险”的情况下升级Ruby版本以恢复“软件包安装”的正常运行?

这是我做了什么:

月1日 - 增加了叽叽喳喳omniauth宝石我的Gemfile。

2nd - 在app/config/initializers文件夹中创建了一个omniauth.rb文件。

3rd - 输入“bundle install”命令并得到以下错误:“omniauth需要Ruby版本> = 2.1.9。”

+0

ruby​​版本的要求被添加到版本v1.5.0中 - 所以你现在可能只需要使用v1.4.2。 –

+0

但是,如果您问“如何迁移应用程序”,那么答案就非常明显 - 一次只需一步,即可进行大量测试!然而,这是一个非常广泛的问题,并且超出了StackOverflow答案的范围。 –

+0

不,我没有问如何迁移应用程序。我只希望能够安装宝石,就是这样。如果我需要更新Ruby版本,那就这样吧。虽然如何?我写了«gem install omniauth -v'1.4.2'»和neverthless ...一旦我安装了bundle,我会一遍又一遍地收到相同的错误。 – samureira

回答

0

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

为了得到一个工作安装,你有两个选择:

  1. 引脚旧版本omniauth的,加入gem "omniauth", "~> 1.4.2"您的Gemfile。这将确保Bundler使用旧版本的omniauth。 但是,这可能会导致与其他宝石发生冲突,给你带来同样的问题 - 实际上,这可能是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版本)。

相关问题