"no such file to load -- sqlite3" Rails

Hi to everyone!

I'm new with Ruby on Rails..
I use linux (an italian distribution, that is just like Slackware)

I'm writing my first program with rails.. Nothing special.. it is the
famous Hello World..!
(I'm reading the book of Dave Thomas "Agile Web Development with Rails")

Well the problem is that when I point my browser to
http://localhost:3000/dire/ciao
("dire" is my controller and "ciao" is the action)
the browser displays this problem:

MissingSourceFile in DireController#ciao

no such file to load -- sqlite3

This error occurred while loading the following files:
   sqlite3

So I write in my shell:
gem install sqlite3-ruby

The gem was installed, but the problem remains..!

Do you know what should I do?

I don't know if I have to change something in the file database.yml..?
database.yml:

# SQLite version 3.x
# gem install sqlite3-ruby (not necessary on OS X Leopard)
development:
   adapter: sqlite3
   database: db/development.sqlite3
   timeout: 5000

# Warning: The database defined as 'test' will be erased and
# re-generated from your development database when you run 'rake'.
# Do not set this db to the same as development or production.
test:
   adapter: sqlite3
   database: db/test.sqlite3
   timeout: 5000

production:
   adapter: sqlite3
   database: db/production.sqlite3
   timeout: 5000

Can someone help me?
Thanks!!!

Lisa

Check the documentation for your system’s package manager and find out how to install sqlite3 (the binary files).

With ubuntu it’s sudo apt-get install sqlite3

You’ve got the ruby libraries, but you still need the sqlite3 library :slight_smile: Good luck!

Lisa Concli wrote:

Well the problem is that when I point my browser to
http://localhost:3000/dire/ciao
("dire" is my controller and "ciao" is the action)
the browser displays this problem:

MissingSourceFile in DireController#ciao

no such file to load -- sqlite3

I'm experiencing a similar problem. I'm using Rails 2.1 with my first
hello-world application.

database.yml says

development:
  adapter: sqlite3
  database: db/development.sqlite3
  timeout: 5000

The following fails:

> rake db:create
(in /Users/me/rails/hello)
rake aborted!
no such file to load -- sqlite3

Then, I did:
> sudo gem install sqlite3-ruby
Building native extensions. This could take a while...
Successfully installed sqlite3-ruby-1.2.2
1 gem installed
Installing ri documentation for sqlite3-ruby-1.2.2...
Installing RDoc documentation for sqlite3-ruby-1.2.2...
> rake db:create
(in /Users/me/rails/hello)
rake aborted!
no such file to load -- sqlite3/database

Can anyone give me a clue?

Thanks a lot,
   Mojca

I forgot to say: the binary sqlite3 works already (3.4.2), so the
suggestion didn't help much.

Mojca Miklavec wrote:

I forgot to say: the binary sqlite3 works already (3.4.2), so the
suggestion didn't help much.

That happened to me on Ubuntu. You have to install libsqlite3-ruby with
aptitude. See in your distribution if you have a similar package.

Ivan V. wrote:

Mojca Miklavec wrote:

I forgot to say: the binary sqlite3 works already (3.4.2), so the
suggestion didn't help much.

That happened to me on Ubuntu. You have to install libsqlite3-ruby with
aptitude. See in your distribution if you have a similar package.

I'm using mac and I indeed have a chance to install that package, but
that one comes with a non-native package manager (fink), and it would
then be installed for that obsolete version of ruby.

I have compiled ruby myself since I needed the bindings for Tcl/Tk 8.5.
Now it seems that the whole installation is a bit messed up. Can anyone
advice?

> sudo gem install sqlite-ruby
Building native extensions. This could take a while...
ERROR: Error installing sqlite-ruby:
         ERROR: Failed to build gem native extension.

/usr/local/bin/ruby extconf.rb install sqlite-ruby
checking for main() in -lsqlite... no
checking for sqlite.h... no
*** 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/local/bin/ruby
        --with-sqlite-dir
        --without-sqlite-dir
        --with-sqlite-include
        --without-sqlite-include=${sqlite-dir}/include
        --with-sqlite-lib
        --without-sqlite-lib=${sqlite-dir}/lib
        --with-sqlitelib
        --without-sqlitelib

Gem files will remain installed in
/usr/local/lib/ruby/gems/1.8/gems/sqlite- ruby-2.2.3 for inspection.
Results logged to
/usr/local/lib/ruby/gems/1.8/gems/sqlite-ruby-2.2.3/ext/gem_make.out

I have compiled & installed sqlite3 into /usr/local as well (in addition
to the one that comes with fink).

Thanks a lot,
    Mojca

Mojca Miklavec wrote:

Lisa Concli wrote:

...
MissingSourceFile in DireController#ciao

no such file to load -- sqlite3

...
Then, I did:
> sudo gem install sqlite3-ruby
Building native extensions. This could take a while...
Successfully installed sqlite3-ruby-1.2.2
1 gem installed
Installing ri documentation for sqlite3-ruby-1.2.2...
Installing RDoc documentation for sqlite3-ruby-1.2.2...
> rake db:create
(in /Users/me/rails/hello)
rake aborted!
no such file to load -- sqlite3/database

I encountered the exact same issue. In my case I'd recently decided to
blow away my MacPorts ruby/rb-rubygems/etc in favor of Hivelogic's "roll
your own" article. The fact that I'd had ruby gems installed previously
may have something to do with it, but none of my gem installs are
taking, sqlite3 included. I pulled sqlite3 off of rubyforge and built it
manually and it took. You might check to see that you can actually load
any gems at all (rubygems 1.2.0) - they seem to install, but actually
using them results in a message similar to that described above.

Aye Garren wrote:

You might check to see that you can actually load
any gems at all (rubygems 1.2.0) - they seem to install, but actually
using them results in a message similar to that described above.

I installed the "rails" gem which works OK apart for he problem with
sqlite3. So I guess that gems do work in general. But there is some
compile error - some required library dependencies fail, but I don't
know where to look for it. If I was compiling manually, I could at least
try to provide different options to configure. Now I have no idea what
and where to do that.

Mojca

Mojca Miklavec wrote:

Aye Garren wrote:

You might check to see that you can actually load
any gems at all (rubygems 1.2.0) - they seem to install, but actually
using them results in a message similar to that described above.

I installed the "rails" gem which works OK apart for he problem with
sqlite3. So I guess that gems do work in general. But there is some
compile error - some required library dependencies fail, but I don't
know where to look for it. If I was compiling manually, I could at least
try to provide different options to configure. Now I have no idea what
and where to do that.

Mojca

On my Ubuntu I also have installed libsqlite3-dev library.

Pozdravček
TheR

It seems it is a sqlite3-ruby 1.2.2 version issue, downgrading it to
1.2.1 it seems to work (Mac OS X 10.5.4). Just take a look at:

http://groups.google.com/group/rubyonrails-talk/msg/366ae75593ed8b46

I had the same problem. Turned out that I had ruby 1.8.5 on my path.
After making sure I was using 1.8.6 and get the latest 2.1.0 rails
again, things are working as expected. Hope you had the same issue as I
was.

Giuseppe Caruso wrote:

It seems it is a sqlite3-ruby 1.2.2 version issue, downgrading it to
1.2.1 it seems to work (Mac OS X 10.5.4). Just take a look at:

http://groups.google.com/group/rubyonrails-talk/msg/366ae75593ed8b46

Thanks for the hint. I didn't run
gem uninstall sqlite3-ruby
since I didn't even manage to install it, but
gem install sqlite3-ruby -v=1.2.1
has indeed been installed properly.

Now I need to test (I have switched to mysql).

On the server I had a different issue (table created, but application
claimed it was not), so I have switched to mysql on both the local
machine and server.

I had the same problem. Turned out that I had ruby 1.8.5 on my path.
After making sure I was using 1.8.6 and get the latest 2.1.0 rails
again, things are working as expected. Hope you had the same issue as I
was.

I'm using (self-compiled) ruby 1.8.7 (and I would not want to
downgrade).

Thanks,
    Mojca

Damjan Rems wrote:

On my Ubuntu I also have installed libsqlite3-dev library.

Pozdravček
TheR

This fixed my issue! Thanks heaps!\

On Ubuntu 8.0.4; this error from running "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 install sqlite3-ruby
checking for fdatasync() in -lrt... yes
checking for sqlite3.h... no
*** 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
  --with-rtlib
  --without-rtlib

Gem files will remain installed in
/usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.2 for inspection.
Results logged to
/usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.2/ext/sqlite3_api/gem_make.out

In my case I just downloaded the sqllite3.dll from the
http://www.sqlite.org/download.html (This is a DLL of the SQLite library
without the TCL bindings. The only external dependency is MSVCRT.DLL.)
and then copied it to the Windows\System32 folder. It worked.

C:> gem i sqlite3-ruby

Billy,

I already tried to install the sqlite3-ruby and was successful in
installing verson 1.2.2 this error is installing this pk.

Sorry, I meant version 1.2.1 ... since effort to install 1.2.2 were not
successful .. encountered same issues as listed in this thread.

thnaks
cg

Did you install the dev package for sqlite3? All of these errors:

ERROR: Failed to build gem native extension.

Are related to the missing source files for Ruby libraries that are
wrappers around native libraries.

M. Figueiroa wrote:

In my case I just downloaded the sqllite3.dll from the
http://www.sqlite.org/download.html (This is a DLL of the SQLite library
without the TCL bindings. The only external dependency is MSVCRT.DLL.)
and then copied it to the Windows\System32 folder. It worked.

MY PROBLEM HAS BEEN RESOLVED ITS WORKING NOW.... im so very thankful to
you Figueiro

Mojca Miklavec wrote:

Now I need to test (I have switched to mysql).

On the server I had a different issue (table created, but application
claimed it was not), so I have switched to mysql on both the local
machine and server.

I had a similar issue, but it turned out that I hadn't run the db
migration for the production environment, which is what I was running
in. You could solve the issue without switching over to mysql for
development by making sure that you're running in the environment you
intend. For me, running through apache using phusion passenger, this
meant adding a RailsEnv value into the VirtualHost block in the
appropriate apache .conf