"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 SQLite Download Page (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 SQLite Download Page (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