Я пытаюсь установить sqlite3-ruby gem (или, как теперь его называют, просто sqlite3), и всякий раз, когда я запускаю
гем установить sqlite3
он выплевывает это
Создание собственных расширений. это
может занять некоторое время ... ОШИБКА: Ошибка
установка sqlite3: ОШИБКА: не удалось
построить собственное расширение gem./usr/bin/ruby1.8 проверка extconf.rb
для sqlite3.h ... да проверка на
sqlite3_libversion_number () в
-lsqlite3 ... да проверка на rb_proc_arity () ... без проверки на
sqlite3_initialize () ... да проверка
для sqlite3_next_stmt () ... да
проверка sqlite3_backup_init () ...
да проверка на
sqlite3_column_database_name () ... нет
проверка на
sqlite3_enable_load_extension () ... да
проверка на
sqlite3_load_extension () ... да
создание Makefileсделать cc -I. -Я.
-I / usr / lib / ruby / 1.8 / x86_64-linux -I. -DHAVE_SQLITE3_INITIALIZE -DHAVE_SQLITE3_NEXT_STMT -DHAVE_SQLITE3_BACKUP_INIT -DHAVE_SQLITE3_ENABLE_LOAD_EXTENSION -DHAVE_SQLITE3_LOAD_EXTENSION -DHAVE_SQLITE3_LOAD_EXTENSION -DHAVE_SQLITE3_LOAD_EXTENSION -I / usr / local / include-local / include -I / usr / local / include -I / usr / local / include -I / -g -O2 -fPIC -c statement.c В файле, включенном из ./sqlite3_ruby.h:42, из statement.c: 1: ./backup.h:7: error: ожидаемый список спецификаторов-спецификаторов перед
'sqlite3_backup' сделать: ***
[statement.o] Ошибка 1Файлы Gem останутся установленными в
/usr/lib/ruby/gems/1.8/gems/sqlite3-1.3.3
на проверку. Результаты зарегистрированы в
/usr/lib/ruby/gems/1.8/gems/sqlite3-1.3.3/ext/sqlite3/gem_make.out
Вот мои системные характеристики:
Сервер Debian Lenny
Рубин 1.8.7
Рельсы 3.0.0
Пассажир 3.0.7
Sqlite3 3.7.6.2
rubygems 1.3.7
огромное спасибо
Мне нужно было включить SQLITE_ENABLE_COLUMN_METADATA во время компиляции. Нашел хороший учебник Вот
открыто sqlite.c
файл и найдите эти строки
#ifndef SQLITE_API
# define SQLITE_API
#endif
добавьте эту строку под ним
#define SQLITE_ENABLE_COLUMN_METADATA
Скомпилировать и установить
./configure
make
make check
sudo make install #You need to run 'make install' as root or with sudo...
sudo make clean
Я ожидаю, что вам нужно будет установить один или оба из ruby-dev (el) и sqlite3-dev (el). Это -dev в системах, подобных Debian, и -devel в системах, подобных Red Hat.