Sqlite3-ruby 安装问题

Sqlite3-ruby 安装问题

我正在尝试安装 sqlite3-ruby gem(或者现在简称为 sqlite3),每当我运行

宝石安装sqlite3

它吐出了这个

构建本机扩展。这
可能需要一段时间...错误:安装 sqlite3 时出错
:错误:无法
构建 gem 本机扩展。

/usr/bin/ruby1.8 extconf.rb 检查
sqlite3.h...是 检查-lsqlite3
中的 sqlite3_libversion_number()
...是 检查 rb_proc_arity()...否 检查
sqlite3_initialize()...是 检查
sqlite3_next_stmt()...是
检查 sqlite3_backup_init()...是 检查 sqlite3_column_database_name()...

检查
sqlite3_enable_load_extension
()...是
检查
sqlite3_load_extension()...是
创建 Makefile

make cc -I. -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 -I/usr/local/include -I/opt/local/include -I/sw/local/include -I/usr/include -fPIC -fno-strict-aliasing -g -g -O2 -fPIC -c statement.c 在从 ./sqlite3_ruby.h:42 包含的文件中,从 statement.c:1 中: ./backup.h:7: 错误:在
“sqlite3_backup”之前需要 specifier-qualifier-list make: ***
[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 服务器
Ruby 1.8.7
Rails 3.0.0
Passenger 3.0.7
Sqlite3 3.7.6.2
ruby​​gems 1.3.7

太感谢了

答案1

我需要在编译期间启用 SQLITE_ENABLE_COLUMN_METADATA。找到了一个不错的教程这里

  1. 下载并提取 sqlite 源代码。
  2. 打开sqlite.c文件并找到以下行

    #ifndef SQLITE_API
    # define SQLITE_API
    #endif
    

    在其下方添加此行

    #define SQLITE_ENABLE_COLUMN_METADATA
    
  3. 编译并安装

    ./configure
    make
    make check
    sudo make install #You need to run 'make install' as root or with sudo...
    sudo make clean
    

答案2

我预计您需要安装 ruby​​-dev(el) 和 sqlite3-dev(el) 中的一个或两个。在 Debian 类系统上是 -dev,在 Red Hat 类系统上是 -devel。

相关内容