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
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.
> 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
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.
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).
...
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.
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.
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.
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.
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).
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.
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.
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
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