No such file to load -- sqlite3 (LoadError)

I am learning how to use ruby from the book, ‘beginning ruby, novice to
pro…’ The chapter on using ruby with sql requires that I install
sqlite3-ruby.

Using sudo gem install sqlite3-ruby, I got the following–

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’ and check your shared library search path
(the
location where your sqlite3 shared library is located).
*** 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.

Provided configuration options:
–with-opt-dir
–without-opt-dir
–with-opt-include
–without-opt-include=${opt-dir}/include
–with-opt-lib
–without-opt-lib=${opt-dir}/lib
–with-make-prog
–without-make-prog
–srcdir=.
–curdir
–ruby=/usr/bin/ruby1.8
–with-sqlite3-dir
–without-sqlite3-dir
–with-sqlite3-include
–without-sqlite3-include=${sqlite3-dir}/include
–with-sqlite3-lib
–without-sqlite3-lib=${sqlite3-dir}/lib

Gem files will remain installed in /var/lib/gems/1.8/gems/sqlite3-1.3.3
for inspection.
Results logged to
/var/lib/gems/1.8/gems/sqlite3-1.3.3/ext/sqlite3/gem_make.out

going into irb,

require ‘rubygems’
=> true
require ‘sqlite3’
no such file to load – sqlite3 (LoadError)

What went wrong?

*my pc is on ubuntu 11.04. I checked synaptic package manager and see
that sqlite3 is installed.

Thanks for that quick reply.

I looked up and installed libsqlite3-dev in synaptic package manager.
Running irb…

require ‘sqlite3’
=>
LoadError: no such file to load – sqlite3
from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in
gem_original_require' from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:inrequire’
from (irb):2
from /usr/lib/ruby/1.8/rubygems.rb:123

On 04/25/2011 08:51 PM, Jim S. wrote:

/usr/bin/ruby1.8 extconf.rb
checking for sqlite3.h… no
sqlite3.h is missing. Try ‘port install sqlite3 +universal’

*my pc is on ubuntu 11.04. I checked synaptic package manager and see
that sqlite3 is installed.

You need libsqlite3-dev, which will provide sqlite3.h.

On 04/25/2011 09:10 PM, Jim S. wrote:

from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require’
from (irb):2
from /usr/lib/ruby/1.8/rubygems.rb:123

Unfortunately, you’ll have to build the gem again, since gem and apt are
separate package systems. Try this again:

gem install sqlite3

running–

gem install sqlite3

I got the following message–

ERROR: While executing gem … (Gem::FilePermissionError)
You don’t have write permissions into the /var/lib/gems/1.8
directory.

so I tried–

sudo gem install sqlite3

and got the following–

Building native extensions. This could take a while…
Successfully installed sqlite3-1.3.3
1 gem installed
Installing ri documentation for sqlite3-1.3.3…

No definition for libversion

Enclosing class/module ‘mSqlite3’ for class Statement not known
Installing RDoc documentation for sqlite3-1.3.3…

No definition for libversion

Enclosing class/module ‘mSqlite3’ for class Statement not known

On 04/25/2011 09:50 PM, Jim S. wrote:

sudo gem install sqlite3

Yeah, that’s what I meant :slight_smile:

So, does your original code work now?

found this on google-- install Sqlite3-ruby gem on ubuntu 8.10 | Things to remember... gave it a try and got these–

#######################################################

Hello! The sqlite3-ruby gem has changed it’s name to just sqlite3.
Rather than
installing sqlite3-ruby, you should install sqlite3. Please update
your
dependencies accordingly.

Thanks from the Ruby sqlite3 team!

<3 <3 <3 <3

#######################################################

Successfully installed sqlite3-ruby-1.3.3
1 gem installed
Installing ri documentation for sqlite3-ruby-1.3.3…
Installing RDoc documentation for sqlite3-ruby-1.3.3…

going into irb–

require ‘sqlite3’
=>
LoadError: no such file to load – sqlite3
from (irb):1:in `require’
from (irb):1
from :0

irb–

require ‘rubygems’
=> true
require ‘sqlite3’
=> true

I think everything works now. Thank you for your help–I appreciate it!

  • jim