首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行ROR应用程序时出现Sqlite-3错误

运行ROR应用程序时出现Sqlite-3错误
EN

Stack Overflow用户
提问于 2010-06-07 14:52:08
回答 4查看 6.7K关注 0票数 4

当我尝试运行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

我不知道错误到底是什么。有没有人能帮帮我......

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-06-08 08:44:05

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

代码语言:javascript
复制
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

代码语言:javascript
复制
config.gem 'sqlite3-ruby', :lib => 'sqlite3', :version => '!= 1.3.0'

或者,如果你想让它变得非常安全,显式地引入1.2.5:

代码语言:javascript
复制
config.gem 'sqlite3-ruby', :lib => 'sqlite3', :version => '1.2.5'
票数 11
EN

Stack Overflow用户

发布于 2012-01-20 22:43:19

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

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

代码语言:javascript
复制
$bundle config

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

代码语言:javascript
复制
$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的时候--使用这个捆绑包配置,你就可以完成所有的工作了。

票数 1
EN

Stack Overflow用户

发布于 2010-06-08 06:57:32

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

代码语言:javascript
复制
> 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中推出,我还在努力。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2987572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档