Forum: Ruby on Rails "no such file to load -- sqlite3" Rails

Posted by Lisa Concli (lisa)
on 2008-03-03 17:49
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
Posted by Brian Hogan (Guest)
on 2008-03-03 20:16
(Received via mailing list)
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 :)
Good luck!

On Mon, Mar 3, 2008 at 10:49 AM, Lisa Concli <
Posted by Lisa Concli (lisa)
on 2008-03-04 08:38
Thank you so much Brian!
Posted by Mojca Miklavec (mojca)
on 2008-06-26 19:17
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
Posted by Mojca Miklavec (mojca)
on 2008-06-26 19:19
I forgot to say: the binary sqlite3 works already (3.4.2), so the 
suggestion didn't help much.
Posted by Ivan V. (ivan_elterrible)
on 2008-06-26 19:31
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.
Posted by Mojca Miklavec (mojca)
on 2008-06-27 19:38
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
Posted by Aye Garren (agarren)
on 2008-06-28 18:32
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.
Posted by Mojca Miklavec (mojca)
on 2008-06-28 21:24
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
Posted by Damjan Rems (ther)
on 2008-06-30 07:29
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
Posted by Giuseppe Caruso (caruso_g)
on 2008-07-07 01:17
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
Posted by K.C. Sham (kamcheung)
on 2008-07-09 06:19
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.
Posted by Mojca Miklavec (mojca)
on 2008-07-09 10:38
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
Posted by James Wigglesworth (wigsgiw)
on 2008-07-10 12:31
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
Posted by frankybj (Guest)
on 2008-07-12 02:37
(Received via mailing list)
Hi;

Suggestion is DO NOT using sqlite3-ruby version =1.2.2, try to using
version 1.2.1.
I fixed it this same problem, through:
# gem uninstall sqlite3-ruby
# gem install sqlite3-ruby -v=1.2.1

BTW, my OS is CentOS4, ruby-1.8.6 (complied  by myself), gem-1.2.0,
rails-2.1.0

Good luck~!


On Jun 27, 1:17 am, Mojca Miklavec <rails-mailing-l...@andreas-s.net>
Posted by M. Figueiroa (mfigueiroa)
on 2008-07-20 16:21
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.
Posted by Yifei Huang (mumhero)
on 2008-08-12 18:22
frankybj wrote:
> Hi;
> 
> Suggestion is DO NOT using sqlite3-ruby version =1.2.2, try to using
> version 1.2.1.
> I fixed it this same problem, through:
> # gem uninstall sqlite3-ruby
> # gem install sqlite3-ruby -v=1.2.1
> 
> BTW, my OS is CentOS4, ruby-1.8.6 (complied  by myself), gem-1.2.0,
> rails-2.1.0
> 
> Good luck~!
> 
> 
> On Jun 27, 1:17�am, Mojca Miklavec <rails-mailing-l...@andreas-s.net>

I just uninstall the sqlite3-ruby 1.2.2 in rubygem, and install it from 
pacman, the package manager of Archlinux. Everything seems ok now
Posted by Cyberg Cg (cyberg)
on 2009-03-09 03:57
Followed things in this email thread but still struggling with this 
issue.

I downgraded from sqlite3 version from 1.2.2 to 1.2.1.

I am running WEBRick installed as part of Ruby downloaded from the 
forge. I have window XP, Ruby 1.8.6. After downgrading sqlite I get 
following error now:


 RuntimeError in BookController#index

unknown error

RAILS_ROOT: C:/LearnWeb20/Ruby/library
Application Trace | Framework Trace | Full Trace


This error occurred while loading the following files:
   sqlite3/driver/dl/driver
   sqlite3/driver/dl/api

*****************

Please help,  I am stuck.  Thanks cg
Posted by Billy Hsu (cfc)
on 2009-03-09 04:03
(Received via mailing list)
C:\> gem i sqlite3-ruby

On Mon, Mar 9, 2009 at 10:57 AM, Cyberg Cg 
<rails-mailing-list@andreas-s.net
> wrote:

>
>   sqlite3/driver/dl/api
>
> *****************
>
> Please help,  I am stuck.  Thanks cg
> --
> Posted via http://www.ruby-forum.com/.
>
> >
>


--
Only two surfaces of a box:
http://blog.pixnet.net/zusocfc
Posted by Cyberg Cg (cyberg)
on 2009-03-09 04:42
Billy,

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

> C:\> gem i sqlite3-ruby
Posted by Cyberg Cg (cyberg)
on 2009-03-09 04:43
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
Posted by Aníbal Rojas (Guest)
on 2009-03-09 13:25
(Received via mailing list)
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.

--
Aníbal Rojas
http://hasmanydevelopers.com
http://rubycorner.com
http://en.anibal.rojas.com.ve

On Mar 9, 10:43 pm, Cyberg Cg <rails-mailing-l...@andreas-s.net>
Posted by Ehtsham Abbas (shamabbas)
on 2009-04-26 13:18
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
Posted by Robert Huberdeau (rhuberdeau)
on 2009-05-05 04:34
Ehtsham Abbas wrote:
> 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

For some reason this doesn't work for me. I moved the dll file into my 
Windows\System32 folder and I get the same error.
Posted by Stephen Washburn (pocket)
on 2010-02-23 09:18
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
Posted by Rafael Giacon (rpgiacon)
on 2010-03-19 23:18
Robert Huberdeau wrote:
> Ehtsham Abbas wrote:
>> 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
> 
> For some reason this doesn't work for me. I moved the dll file into my 
> Windows\System32 folder and I get the same error.




try downloading the precompiled files from:
 http://www.sqlite.org/download.html

in windows you will need the
sqlite3.def, sqlite3.dll, sqlite3.exe.
 Save this files to the Ruby/bin directory,
then use the 'gem install sqlite3-ruby'
(you may get some definition error messages about the documentation but 
it shoud work anyways)
Posted by Rick W. (rick_w)
on 2011-11-16 00:33
Check that you have gcc installed.

This error comes up if it is not installed, because of the method they
use to check the existence of sqlite3.h: They simply try to compile this
one-line program:

#include <sqlite3.h>

If the compilation fails, they tell you that sqlite3.h is missing, but
the compilation will also fail if gcc is not present. It's not a very
smart check...

Lisa Concli wrote in post #641008:
> 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
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.