我得到了 ruby 1.8.7(本机编译)、rails 2.3.4、OSX 10.6.2 和 sqlite3-ruby。
我在访问 rails 应用程序时遇到的错误是
NameError: 未初始化的常量 SQLite3::Driver::Native::Driver::API
历史:
我通过使用 FW 电缆将我的应用程序从旧的 macbook 迁移到新的 macbook 来升级到雪豹。几个月来一切都运行得很好,但是昨天我需要安装 watir,它依赖于 rb-appscript,由于 libsqlite3.dylib 中的“错误架构”错误而没有构建。我认为构建是在旧机器上进行的,所以我想重建 sqlite3-ruby:
$ sudo gem 卸载 sqlite3-ruby
$ sudo gem 安装 sqlite3-ruby
构建原生扩展。这可能需要一段时间...
错误:安装 sqlite3-ruby 时出错:
错误:无法构建 gem 原生扩展。/usr/local/bin/ruby extconf.rb
检查 -lrt 中的 fdatasync()... 不
检查 sqlite3.h... 是
检查 -lsqlite3 中的 sqlite3_open()... 否
* extconf.rb 失败 *
由于某种原因无法创建 Makefile,可能缺少
必要的库和/或头文件。检查 mkmf.log 文件以获取更多
详细信息。您可能需要配置选项。
似乎 sqlite3 库无法正常工作。我尝试安装macports sqlite3(sudo port install sqlite3)并使用它,但结果相同......所以我从头开始重建sqlite3..下载->配置->制作->制作安装。之后,gem 现在可以完美构建,但不能在 rails 中工作,导致出现本文顶部的错误。
我不确定从这里去哪里,因为我尝试了以下方法
- 从最新源重建 sqlite3 ( http://www.sqlite.org/download.html )
- 重新安装 sqlite3-ruby (sudo gem uninstall sqlite3-ruby && sudo gem install sqlite3-ruby)
- 从 macports 使用 sqlite3 (sudo port install sqlite3 && sudo gem install sqlite3-ruby)
- 重新安装 rails (sudo gem install rails sqlite3-ruby) 并将 environment.rb 更新到 rails 2.3.5。
无济于事,我仍然收到此错误:
NameError:未初始化的常量 SQLite3::Driver::Native::Driver::AP
来自 /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:105:in 从 /usr/local/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.5/lib/sqlite3/database.rb:76:in 'initialize' 打开'const_missing'
from /usr/local/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.5/lib/sqlite3/driver/native/driver.rb:76:in
顺便说一句,我从 Snow Leopard CD 安装了 Xcode。
我能做些什么来解决这个问题?