【问题标题】:Error : 'incompatible library version' sqlite3-1.3.11 in rails错误:rails 中的“不兼容的库版本”sqlite3-1.3.11
【发布时间】:2016-08-26 01:43:20
【问题描述】:

我在 Ubuntu 系统(16.04)上工作。

我的问题是,每当我设置任何 Rails 项目并尝试运行 rails s 时,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

我尝试使用 rails 4.0.0 的 ruby​​ 版本:

  • 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 install 的输出

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

【问题讨论】:

  • 你能发布gem install sqlite3 -v '1.3.11'的输出吗?
  • 这个问题你解决了吗,我也遇到了同样的问题
  • @Sebin,我更新了我的问题并发布了gem install sqlite3 -v '1.3.11'@NickGarver 的输出,我还没有得到任何解决方案。

标签: ruby-on-rails ruby ruby-on-rails-3 sqlite sqlite3-ruby


【解决方案1】:

SQLite 库可能已损坏。尝试通过从命令提示符运行以下命令来重新安装 gem:

gem uninstall sqlite3

然后运行:

bundle install

【讨论】:

  • 感谢您的回复,但您的解决方案对我不起作用。我根据您的解决方案更新问题。
【解决方案2】:

我已经将 ruby​​ 版本回滚到 2.3.0 并且一切正常。这似乎是一个问题

【讨论】:

    【解决方案3】:

    @Jiggs:当我的系统更新到 16.04 时,我遇到了同样的问题。在那之后,所有以前的应用程序都很难配置为抛出如此多的依赖错误,而您的错误就是其中之一。

    经过大量发现唯一的结论后,我发现问题出在 RVM 上,

    如果您使用的是 RVM,请在 default gemset 中安装 Rails 5.0

    rvm gemset use default
    gem install rails -v=5.0 
    

    安装 rails 5 后,所有兼容的依赖项都已安装。

    现在转到您的任何项目 CREATE New GEMSET(请不要使用以前的)。

    rvm gemset create my_new_gemset
    rvm gemset use my_new_gemset
    

    终于做bundle install

    在我的情况下,这样做解决了你提到的所有错误。

    我知道在默认 gemset 中安装 Rails-5 并使用新的 gemset 解决了这个问题有点奇怪。但不知何故,它起作用了。

    希望这会对您有所帮助。

    【讨论】:

      【解决方案4】:

      对我来说,回到 ruby​​ 2.2.5p319 有所帮助。我只是意识到 Rails 附带的 Ruby 版本必须与安装的版本匹配,即使 RubyInstaller 版本领先。

      【讨论】:

        【解决方案5】:

        我来这里寻找答案,没有帮助我,但我找到了解决方案 here,(这似乎是 1.3.11 的问题,降级到 1.3.10 就可以了)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-06-26
          • 2020-06-23
          • 2022-08-14
          • 2016-10-12
          • 2016-03-11
          • 2018-02-26
          相关资源
          最近更新 更多