安装sqlite3-ruby的问题!

tem*_*emp 9 ruby rubygems sqlite3-ruby

我在crunchbang linux上安装sqlite3-ruby gem时遇到问题.谷歌搜索过去几个小时,并跟随几个有同样问题的人,我仍然没有得到它的工作.

这是我在尝试'sudo gem install sqlite3-ruby'之后看到的

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

/usr/bin/ruby1.8 extconf.rb
检查sqlite3.h ...是
检查-lsqlite3中的sqlite3_libversion_number()...是
检查rb_proc_arity()...不
检查sqlite3_initialize()...否
sqlite3-ruby只支持sqlite3版本3.6.16+,请升级!
*extconf.rb失败*
由于某些原因无法创建Makefile,可能缺少
必要的库和/或标头.检查mkmf.log文件以获取更多
详细信息.您可能需要配置选项.

接下来我跑过这个页面; http://groups.google.com/group/sqlite3-ruby/browse_thread/thread/f22d098b561c48af/6e754f7b2fc3cd75?#6e754f7b2fc3cd75

我下载了sqlite-amalgamation-3.7.0.1.tar.gz并发出以下命令:

tar zxvf sqlite-amalgamation-3.7.0.1.tar.gz
cd cd sqlite-3.7.0.1
mkdir $ HOME/sqlite
./configure --prefix = $ HOME/sqlite
make && make install
sudo gem install sqlite3-ruby - -与-sqlite3的-DIR = $ HOME /源码

但是,我仍然得到完全相同的错误.我使用'sudo apt-get install sqlite3 libsqlite3-dev',但我仍然得到完全相同的错误.

有什么建议?

而作为一个小小的一边,为什么当我使用'sudo apt-get install sqlite3'时,它抓取3.5.9而不是我手动下载的3.7.0.1?

Ala*_*ois 15

安装较低版本的sqlite3-ruby应解决您的问题:

sudo gem install sqlite3-ruby --version=1.2.5
Run Code Online (Sandbox Code Playgroud)


小智 3

这是因为在组合 Makefile 之前测试函数时 extconf.rb 选择了旧的 3.5.9 库。

缩短这个时间的一种解决方案是 apt-get 删除 sqlite3 并重试

sudo gem install sqlite3-ruby -- --with-sqlite3-dir=$HOME/sqlite
Run Code Online (Sandbox Code Playgroud)

如果您想使用 sqlite3 命令行二进制文件,这可能会避免不兼容问题。

另一个解决方案是将新的 ~/sqlite/lib/libsqlite3.a 复制到 gem 的构建目录中(请参阅 gem env,例如 gems/sqlite3-ruby-1.3.1/ext/sqlite3)并重试

sudo gem install sqlite3-ruby
Run Code Online (Sandbox Code Playgroud)

测试现在应该会选取您的新库并安装良好。