当我尝试运行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
我不知道错误到底是什么。有没有人能帮帮我......
发布于 2010-06-08 08:44:05
今天早上,我在将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'发布于 2012-01-20 22:43:19
如果您将gemfile锁定为sqlite3-ruby,那么在最新的Rails版本上启动应用程序将会出现问题,因为Rails希望将gem命名为"sqlite3“。这个问题的真正解决方案是确保gem创建的.bundle文件确实链接到正确的sqlite3库。
默认情况下,usr gem将链接到/ sqlite3 /lib中不存在的库。这是不对的。您需要做的是为您的系统直接设置编译选项并重新安装sqlite3 gem,您可以很容易地使用
$bundle config他们的手册页指定了它的作用,但这是我需要执行的命令(我从他们的站点安装了一个自己的SQLite,而不是通过brew或macport)。
$bundle config build.sqlite3 --with-sqlite3-include=/usr/local/include --with-sqlite3-lib=/usr/local/lib当您尝试“捆绑安装”gem时,这将始终为gem提供正确的选项,您的gem将正确构建。
请注意,这个问题有点隐蔽,因为它不会在Ruby 1.9上发生-显然,rbconfig已经更新了,并且做了更好的库查找。但是当你打算兼容1.8的时候--使用这个捆绑包配置,你就可以完成所有的工作了。
发布于 2010-06-08 06:57:32
我在我的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控制台问题。
然而,我还没有让这个应用程序在passenger中推出,我还在努力。
https://stackoverflow.com/questions/2987572
复制相似问题