Error : 'incompatible library version' sqlite3-1.3.11 in rails
Error : 'incompatible library version' sqlite3-1.3.11 in rails
我在 Ubuntu 系统 (16.04) 上工作。
我的问题是每当我设置任何 rails 项目并尝试 运行 rails s
然后我得到 'incompatible library version' sqlite3 错误,如下所示。
/home/jiggs/.rvm/gems/ruby-2.3.1@albumriver/gems/activesupport-4.0.0/lib/active_support/values/time_zone.rb:282: warning: circular argument reference - now
/home/jiggs/.rvm/gems/ruby-2.3.1@albumriver/gems/sqlite3-1.3.11/lib/sqlite3.rb:6:in `require': incompatible library version - /home/jiggs/.rvm/gems/ruby-2.3.1@albumriver/gems/sqlite3-1.3.11/lib/sqlite3/sqlite3_native.so (LoadError)
from /home/jiggs/.rvm/gems/ruby-2.3.1@albumriver/gems/sqlite3-1.3.11/lib/sqlite3.rb:6:in `rescue in <top (required)>'
from /home/jiggs/.rvm/gems/ruby-2.3.1@albumriver/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/ruby-2.3.1@albumriver/gems/railties-4.0.0/lib/rails/commands.rb:76:in `require'
from /home/jiggs/.rvm/gems/ruby-2.3.1@albumriver/gems/railties-4.0.0/lib/rails/commands.rb:76:in `block in <top (required)>'
from /home/jiggs/.rvm/gems/ruby-2.3.1@albumriver/gems/railties-4.0.0/lib/rails/commands.rb:73:in `tap'
from /home/jiggs/.rvm/gems/ruby-2.3.1@albumriver/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
ruby 我用 rails 4.0.0 试过的版本:
ruby-2.0.0-p247 [x86_64]
ruby-2.2.5 [x86_64]
ruby-2.3.0 [x86_64]
ruby-2.3.0-preview1 [x86_64]
ruby-2.3.1 [x86_64]
我尝试使用 gem uninstall sqlite3
卸载 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安装:
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
SQLite 库可能已损坏。尝试通过 运行 从命令提示符中执行以下命令来重新安装 gem:
gem uninstall sqlite3
然后运行:
bundle install
我已经将 ruby 版本回滚到 2.3.0 并且一切正常。这似乎是一个问题
对我来说回到 ruby 2.2.5p319 很有帮助。我刚刚意识到 Rails has to match to the one installed even though the RubyInstaller 版本附带的 Ruby 版本领先。
@Jiggs:我的系统更新到 16.04 时遇到了同样的问题。之后所有以前的应用程序都很难配置为抛出如此多的依赖错误,其中您的错误就是其中之一。
经过大量查找后,我得到的唯一结论是 RVM 上的问题,
如果您正在使用 RVM,请在您的 default
gemset
中安装 Rails 5.0
rvm gemset use default
gem install rails -v=5.0
安装 rails 5 后,所有兼容的依赖项都已安装。
现在转到您的任何项目创建新的 GEMSET(请不要使用以前的)。
rvm gemset create my_new_gemset
rvm gemset use my_new_gemset
最后做 bundle install
就我而言,在执行此操作后解决了您提到的所有错误。
我知道在默认 gemset
中安装 Rails-5 并使用新的 gemset
解决了这个问题有点奇怪。但不知何故它起作用了。
希望这对您有所帮助。
我来这里寻找答案,没有帮助我,但我找到了解决方案 ,(这似乎是 1.3.11 的问题,降级到 1.3.10 就成功了)
我在 Ubuntu 系统 (16.04) 上工作。
我的问题是每当我设置任何 rails 项目并尝试 运行 rails s
然后我得到 'incompatible library version' sqlite3 错误,如下所示。
/home/jiggs/.rvm/gems/ruby-2.3.1@albumriver/gems/activesupport-4.0.0/lib/active_support/values/time_zone.rb:282: warning: circular argument reference - now
/home/jiggs/.rvm/gems/ruby-2.3.1@albumriver/gems/sqlite3-1.3.11/lib/sqlite3.rb:6:in `require': incompatible library version - /home/jiggs/.rvm/gems/ruby-2.3.1@albumriver/gems/sqlite3-1.3.11/lib/sqlite3/sqlite3_native.so (LoadError)
from /home/jiggs/.rvm/gems/ruby-2.3.1@albumriver/gems/sqlite3-1.3.11/lib/sqlite3.rb:6:in `rescue in <top (required)>'
from /home/jiggs/.rvm/gems/ruby-2.3.1@albumriver/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/ruby-2.3.1@albumriver/gems/railties-4.0.0/lib/rails/commands.rb:76:in `require'
from /home/jiggs/.rvm/gems/ruby-2.3.1@albumriver/gems/railties-4.0.0/lib/rails/commands.rb:76:in `block in <top (required)>'
from /home/jiggs/.rvm/gems/ruby-2.3.1@albumriver/gems/railties-4.0.0/lib/rails/commands.rb:73:in `tap'
from /home/jiggs/.rvm/gems/ruby-2.3.1@albumriver/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
ruby 我用 rails 4.0.0 试过的版本:
ruby-2.0.0-p247 [x86_64]
ruby-2.2.5 [x86_64]
ruby-2.3.0 [x86_64]
ruby-2.3.0-preview1 [x86_64]
ruby-2.3.1 [x86_64]
我尝试使用 gem uninstall sqlite3
卸载 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安装:
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
SQLite 库可能已损坏。尝试通过 运行 从命令提示符中执行以下命令来重新安装 gem:
gem uninstall sqlite3
然后运行:
bundle install
我已经将 ruby 版本回滚到 2.3.0 并且一切正常。这似乎是一个问题
对我来说回到 ruby 2.2.5p319 很有帮助。我刚刚意识到 Rails has to match to the one installed even though the RubyInstaller 版本附带的 Ruby 版本领先。
@Jiggs:我的系统更新到 16.04 时遇到了同样的问题。之后所有以前的应用程序都很难配置为抛出如此多的依赖错误,其中您的错误就是其中之一。
经过大量查找后,我得到的唯一结论是 RVM 上的问题,
如果您正在使用 RVM,请在您的 default
gemset
rvm gemset use default
gem install rails -v=5.0
安装 rails 5 后,所有兼容的依赖项都已安装。
现在转到您的任何项目创建新的 GEMSET(请不要使用以前的)。
rvm gemset create my_new_gemset
rvm gemset use my_new_gemset
最后做 bundle install
就我而言,在执行此操作后解决了您提到的所有错误。
我知道在默认 gemset
中安装 Rails-5 并使用新的 gemset
解决了这个问题有点奇怪。但不知何故它起作用了。
希望这对您有所帮助。
我来这里寻找答案,没有帮助我,但我找到了解决方案