sqlite3-ruby gem can't find sqlite3.h on ubuntu

David Moles picture David Moles · Sep 27, 2010 · Viewed 10.8k times · Source

Trying to get Rails up on ubuntu, and I’m having trouble installing sqlite3-ruby – it apparently can’t find sqlite3.h. All the references I can find to the error suggest the problem is either: sqlite3 headers aren’t installed, or make can’t find them. It looks to me like I’ve solved both those issues and I’m still seeing the same problem.

No real idea what’s going on here. Version mismatch, maybe? This is with ruby 1.8.7, sqlite 3.6.22-1, gem 1.3.5 and sqlite3-ruby 1.3.1 on ubuntu 10.04.1.

david@li88-188:~$ sudo apt-get install sqlite3

[...successful installation...]

Setting up sqlite3 (3.6.22-1) ...
david@li88-188:~$ sudo apt-get install libsqlite3-dev

[...successful installation...]

Setting up libsqlite3-dev (3.6.22-1) ...
david@li88-188:~$ sudo gem install sqlite3-ruby
Building native extensions.  This could take a while...
ERROR:  Error installing sqlite3-ruby:
 ERROR: Failed to build gem native extension.

/usr/bin/ruby1.8 extconf.rb
checking for sqlite3.h... no
sqlite3.h is missing. Try 'port install sqlite3 +universal' or 'yum install sqlite3-devel'
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

[...configuration options etc....]

david@li88-188:~$ cat /var/lib/gems/1.8/gems/sqlite3-ruby-1.3.1/ext/sqlite3/mkmf.log 
find_header: checking for sqlite3.h... -------------------- no

"gcc -E -I. -I/usr/lib/ruby/1.8/i486-linux -I. -I/usr/local/include -I/opt/local/include -I/usr/include  -D_FILE_OFFSET_BITS=64  -fno-strict-aliasing -g -g -O2  -fPIC   -O3 -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline  conftest.c -o conftest.i"
checked program was:
/* begin */
1: #include <sqlite3.h>
/* end */

--------------------

Note that /usr/include is in the list of arguments.

david@li88-188:~$ ls -l /usr/include/sqlite3.h 
-rw-r--r-- 1 root root 268351 2010-02-08 03:59 /usr/include/sqlite3.h

And note that the file is there.

Answer

mydoghasworms picture mydoghasworms · Dec 1, 2011

In my case I had to install libsqlite3-dev

sudo apt-get install libsqlite3-dev