【问题标题】:Sqlite-3 error while running ROR application运行 ROR 应用程序时出现 Sqlite-3 错误
【发布时间】:2010-06-07 06:52:07
【问题描述】:

当我尝试运行 Ruby on Rails 应用程序时......我面临以下错误

符号查找错误:/home/user/.rvm/gems/ruby-1.9.2-preview3/gems/sqlite3-ruby-1.3.0/lib/sqlite3/sqlite3_native.so:未定义符号:sqlite3_initialize

我不知道究竟是什么错误。谁能帮我解决这个问题......

【问题讨论】:

    标签: sqlite sqlite3-ruby


    【解决方案1】:

    我今天早上将sqlite3-ruby 升级到 1.3.0 后遇到了同样的问题。快速解决方法是卸载 1.3.0 并确保已安装 1.2.5:

    gem uninstall sqlite3-ruby --version 1.3.0
    gem install sqlite3-ruby --version 1.2.5
    

    更好的选择是将 gem 配置设置为忽略 1.3.0。对于 Rails 2.x,在 config/environment.rb:

    config.gem 'sqlite3-ruby', :lib => 'sqlite3', :version => '!= 1.3.0'
    

    或者如果你想让它玩起来真的很安全,明确地拉入 1.2.5:

    config.gem 'sqlite3-ruby', :lib => 'sqlite3', :version => '1.2.5'
    

    【讨论】:

    • 谢谢 Jason .... 它真的帮助我从心碎的错误中走出来......
    【解决方案2】:

    如果您将 gemfile 锁定到 sqlite3-ruby,您将无法在最新的 Rails 版本上启动应用程序,因为 Rails 想要将 gem 命名为“sqlite3”。这个问题的真正解决方案是确保 gem 创建的 .bundle 文件确实链接到正确的 sqlite3 库。

    默认情况下,sqlite3 gem 将链接到 /usr/lib 中不存在的库。这个不对。您需要做的是直接为您的系统设置编译选项并重新安装 sqlite3 gem,您可以轻松地使用

    $bundle config
    

    他们的手册页指定了它的作用,但这是我需要执行的命令(我从他们的站点自行安装了 SQLite,而不是通过 brew 或 macports)。

    $bundle config build.sqlite3 --with-sqlite3-include=/usr/local/include --with-sqlite3-lib=/usr/local/lib
    

    当您尝试“捆绑安装”它时,这将始终为 gem 提供正确的选项,并且您的 gem 将正确构建。

    请注意,这个问题有点狡猾,因为它不会在 Ruby 1.9 上发生 - 显然 rbconfig 已经更新并且可以更好地查找库。但是,当您要实现 1.8 兼容性时 - 使用此捆绑配置,您将万事俱备。

    【讨论】:

      【解决方案3】:

      我在 Dreamhost 服务器上遇到了同样的问题:

      > bundle exec rails c 
      ruby: symbol lookup error: /home/user/settings/installs/rubygems/gems/gems/sqlite3-ruby-1.3.0/lib/sqlite3/sqlite3_native.so: undefined symbol: sqlite3_initialize
      

      我在我的主目录中手动下载并安装了SQLite3,并将 LD_LIBRARY_PATH 添加到我的 .bashrc。这解决了 Rails 控制台问题。

      但是,我还没有让应用程序在乘客中启动,我仍在努力。

      【讨论】:

        【解决方案4】:

        Ruby Enterprise Edition自动安装sqlite3 gem,1.3.0好像是问题。

        如果您的 Rails 应用不需要 sqlite3,请尝试卸载 gem 并重新启动您的应用。

        sudo gem uninstall sqlite3
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-05-14
          • 2018-08-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多