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

Posted by Lisa Concli (lisa)
on 03.03.2008 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 03.03.2008 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 04.03.2008 08:38
Thank you so much Brian!
Posted by Mojca Miklavec (mojca)
on 26.06.2008 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 26.06.2008 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 26.06.2008 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 27.06.2008 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 28.06.2008 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 28.06.2008 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 30.06.2008 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 07.07.2008 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 09.07.2008 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 09.07.2008 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 10.07.2008 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 12.07.2008 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:17am, Mojca Miklavec <rails-mailing-l...@andreas-s.net>
Posted by M. Figueiroa (mfigueiroa)
on 20.07.2008 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 12.08.2008 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