2017-07-04 43 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版本)。

相關問題