У меня есть Ruby 1.8.7 (скомпилированный в собственном коде), rails 2.3.4, OSX 10.6.2, а также sqlite3-ruby.
Ошибка, которую я получаю при доступе к приложению rails:
NameError: неинициализированная константа SQLite3 :: Driver :: Native :: Driver :: API
История:
Я перешел на Snow Leopard, перенеся свои приложения с помощью кабеля FW со старого 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
проверка fdatasync () в -lrt ... no
проверка sqlite3.h ... да
проверка sqlite3_open () в -lsqlite3. .. нет
* extconf.rb не удалось *
Не удалось создать файл Makefile по какой-то причине, возможно, из-за отсутствия необходимых библиотек и / или заголовков. Просмотрите файл mkmf.log для получения дополнительных
подробностей. Вам могут потребоваться параметры конфигурации.
Кажется, что библиотеки sqlite3 не работают должным образом. Я попытался установить macports sqlite3 (sudo port install sqlite3) и использовать его вместо этого, но с тем же результатом ... поэтому я перестраиваю sqlite3 с нуля .. download-> configure-> make-> make install. После этого гем собирается идеально, но не работает в рельсах, что приводит к ошибке в верхней части этой статьи.
Я не совсем уверен, что делать дальше, потому что пробовал следующее
- Восстановите sqlite3 из новейшего источника (http://www.sqlite.org/download.html)
- Переустановил sqlite3-ruby (sudo gem удалить sqlite3-ruby && sudo gem install sqlite3-ruby)
- Используется sqlite3 от macports (sudo port install sqlite3 && sudo gem install sqlite3-ruby)
- Переустановил рельсы (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: вconst_missing'
open '
from /usr/local/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.5/lib/sqlite3/driver/native/driver.rb:76:in
из /usr/local/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.5/lib/sqlite3/database.rb:76:в `initialize'
Кстати, у меня установлен Xcode с компакт-диска Snow Leopard.
Что я могу сделать, чтобы решить проблему?