2016-05-01 89 views
3

我在Ubuntu系統(16.04)上工作。錯誤:'不兼容的庫版本'sqlite3-1.3.11 in rails

我的問題是每當我安裝任何rails項目,並嘗試運行rails s然後我得到'不兼容的庫版本'錯誤的sqlite3像下面的東西。

/home/jiggs/.rvm/gems/[email protected]/gems/activesupport-4.0.0/lib/active_support/values/time_zone.rb:282: warning: circular argument reference - now 
/home/jiggs/.rvm/gems/[email protected]/gems/sqlite3-1.3.11/lib/sqlite3.rb:6:in `require': incompatible library version - /home/jiggs/.rvm/gems/[email protected]/gems/sqlite3-1.3.11/lib/sqlite3/sqlite3_native.so (LoadError) 
    from /home/jiggs/.rvm/gems/[email protected]/gems/sqlite3-1.3.11/lib/sqlite3.rb:6:in `rescue in <top (required)>' 
    from /home/jiggs/.rvm/gems/[email protected]/gems/sqlite3-1.3.11/lib/sqlite3.rb:2:in `<top (required)>' 
    from /usr/lib/ruby/vendor_ruby/bundler/runtime.rb:77:in `require' 
    from /usr/lib/ruby/vendor_ruby/bundler/runtime.rb:77:in `block (2 levels) in require' 
    from /usr/lib/ruby/vendor_ruby/bundler/runtime.rb:72:in `each' 
    from /usr/lib/ruby/vendor_ruby/bundler/runtime.rb:72:in `block in require' 
    from /usr/lib/ruby/vendor_ruby/bundler/runtime.rb:61:in `each' 
    from /usr/lib/ruby/vendor_ruby/bundler/runtime.rb:61:in `require' 
    from /usr/lib/ruby/vendor_ruby/bundler.rb:99:in `require' 
    from /home/jiggs/sites/albumriverfinal/config/application.rb:7:in `<top (required)>' 
    from /home/jiggs/.rvm/gems/[email protected]/gems/railties-4.0.0/lib/rails/commands.rb:76:in `require' 
    from /home/jiggs/.rvm/gems/[email protected]/gems/railties-4.0.0/lib/rails/commands.rb:76:in `block in <top (required)>' 
    from /home/jiggs/.rvm/gems/[email protected]/gems/railties-4.0.0/lib/rails/commands.rb:73:in `tap' 
    from /home/jiggs/.rvm/gems/[email protected]/gems/railties-4.0.0/lib/rails/commands.rb:73:in `<top (required)>' 
    from bin/rails:4:in `require' 
    from bin/rails:4:in `<main>' 

的Rails版本:4.0.0

紅寶石版本我試圖與導軌4.0.0:

  • 紅寶石2.0.0-P247 [x86_64的]

  • 紅寶石-2.2.5 [x86_64]

  • ruby​​-2.3.0 [x86_64]

  • 紅寶石2.3.0-preview1 [x86_64的]

  • 紅寶石2.3.1 [x86_64的]

我嘗試卸載sqlite3的使用gem uninstall sqlite3並試圖運行bundle install,但得到這個錯誤:

An error occurred while installing sqlite3 (1.3.11), and Bundler cannot continue. 
Make sure that `gem install sqlite3 -v '1.3.11'` succeeds before bundling. 

然後我跑gem install sqlite3 -v '1.3.11'和運行rails server,並再次incompatible library version得到了同樣的錯誤。 sqlite3的寶石

輸出安裝

gem install sqlite3 -v '1.3.11' 
Fetching: sqlite3-1.3.11.gem (100%) 
Building native extensions. This could take a while... 
Successfully installed sqlite3-1.3.11 
Parsing documentation for sqlite3-1.3.11 
Installing ri documentation for sqlite3-1.3.11 
Done installing documentation for sqlite3 after 1 seconds 
1 gem installed 
+0

你可以發佈'gem install sqlite3 -v'1.3.11''的輸出嗎? – Sebin

+0

你認爲這個問題,我有完全相同的問題 –

+0

我在Mac上有同樣的問題,當我做了這個命令它成功安裝,但是當我做「軌道服務器」它只是打我下一個gemt那弄亂。很確定這個mac更新性交紅寶石。時間重新安裝一切大聲笑 –

回答

6

SQLite庫很可能被破壞。嘗試通過運行一個命令pronpt以下重新安裝寶石:

gem uninstall sqlite3 

然後運行:

bundle install 
+0

感謝您的回覆,但您的解決方案不適合我。我根據您的解決方案更新問題。 – Jiggs

0

我回滾紅寶石版本2.3.0和所有的工作。它似乎是一個問題

0

對於我回到紅寶石2.2.5p319幫助。我剛剛意識到,Rails附帶的Ruby版本必須與已安裝的版本匹配,即使RubyInstaller版本發佈了。

1

@Jiggs:當我的系統更新到16.04時,我得到了同樣的問題。之後,所有以前的應用程序很難配置爲拋出這麼多的依賴性錯誤,其中您的錯誤就是其中之一。

經過大量的調查唯一結論的,我得到了問題的RVM,

如果您正在使用RVM那麼請你要跟default寶石

rvm gemset use default 
gem install rails -v=5.0 

安裝Rails 5.0安裝導軌5在所有兼容依賴關係被安裝。

現在轉到您的任何項目創建新的GEMSET(請不要使用以前的)。

rvm gemset create my_new_gemset 
rvm gemset use my_new_gemset 

最後做bundle install

在我的情況做你所說的這個解決了所有的錯誤後。

我知道安裝Rails-5默認gemset和使用新的gemset解決了這個問題有點奇怪。但不知何故,它的作品。

希望這會幫助你。