Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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.

like image 607
David Moles Avatar asked Sep 26 '10 23:09

David Moles


2 Answers

In my case I had to install libsqlite3-dev

sudo apt-get install libsqlite3-dev
like image 181
mydoghasworms Avatar answered Oct 04 '22 07:10

mydoghasworms


Never mind. gcc itself wasn't installed, as I discovered when I tried to install another gem with better error messages.

like image 25
David Moles Avatar answered Oct 04 '22 07:10

David Moles