简体   繁体   中英

How to install sqlite3 for ruby on rails for windows10

When I am invoking rails to build the skeleton of a new application ie rails 5.1.3 new flix, I am getting the error ie the last part of command output is

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory:
C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/gems/sqlite3-1.4.0/ext/sqlite3
C:/RailsInstaller/Ruby2.3.3/bin/ruby.exe -r ./siteconf20190222-12524-hspyoq.rb
extconf.rb
checking for sqlite3.h... no
sqlite3.h is missing. Install SQLite3 from http://www.sqlite.org/ first.
*** 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=C:/RailsInstaller/Ruby2.3.3/bin/$(RUBY_BASE_NAME)
        --with-sqlcipher
        --without-sqlcipher
        --with-sqlite3-config
        --without-sqlite3-config
        --with-pkg-config
        --without-pkg-config
        --with-sqlcipher
        --without-sqlcipher
        --with-sqlite3-dir
        --without-sqlite3-dir
        --with-sqlite3-include
        --without-sqlite3-include=${sqlite3-dir}/include
        --with-sqlite3-lib
        --without-sqlite3-lib=${sqlite3-dir}/lib

To see why this extension failed to compile, please check the mkmf.log which can
be found here:

C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/extensions/x86-mingw32/2.3.0/sqlite3-1.4.0/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in
C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/gems/sqlite3-1.4.0 for
inspection.
Results logged to
C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/extensions/x86-mingw32/2.3.0/sqlite3-1.4.0/gem_make.out

An error occurred while installing sqlite3 (1.4.0), and Bundler cannot continue.
Make sure that `gem install sqlite3 -v '1.4.0'` succeeds before bundling.

In Gemfile:
  sqlite3

When I am running gem install sqlite3 -v '1.4.0' , I get the below error message

C:\Users\acer>gem install sqlite3 -v '1.4.0'
Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
ERROR:  Error installing sqlite3:
        ERROR: Failed to build gem native extension.

    current directory: C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/gems/sqlite3-1.4.0/ext/sqlite3
C:/RailsInstaller/Ruby2.3.3/bin/ruby.exe -r ./siteconf20190222-11816-8sfvgr.rb extconf.rb
checking for sqlite3.h... no
sqlite3.h is missing. Install SQLite3 from http://www.sqlite.org/ first.
*** 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=C:/RailsInstaller/Ruby2.3.3/bin/$(RUBY_BASE_NAME)
        --with-sqlcipher
        --without-sqlcipher
        --with-sqlite3-config
        --without-sqlite3-config
        --with-pkg-config
        --without-pkg-config
        --with-sqlcipher
        --without-sqlcipher
        --with-sqlite3-dir
        --without-sqlite3-dir
        --with-sqlite3-include
        --without-sqlite3-include=${sqlite3-dir}/include
        --with-sqlite3-lib
        --without-sqlite3-lib=${sqlite3-dir}/lib

To see why this extension failed to compile, please check the mkmf.log which can be found here:

  C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/extensions/x86-mingw32/2.3.0/sqlite3-1.4.0/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/gems/sqlite3-1.4.0 for inspection.
Results logged to C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/extensions/x86-mingw32/2.3.0/sqlite3-1.4.0/gem_make.out

If anyone has installed sqlite in windows 10, please guide me.

Thanks a lot in advance.

As written in the error messages, you need to install SQLite 3 on your computer first ( http://www.sqlite.org/ ). The ruby gem sqlite3 only gives you a way of using SQLite 3 from Ruby, but it needs to be installed on your system nonetheless.

I have just installed my ruby on rails today being 10th of April 2019. I took out my time to write this

I encountered the same issues when I tried to my rails app working directory.

Here is the step that I followed that works excellent without any error.

1.) Download Ruby installer from link Here I downloaded Ruby+Devkit 2.6.1-1 (x86) because am using window OS 32 bit.

Run the installation file

2.)check if the ruby is installed by evaluating its version

at command prompt type

ruby -v

you will see output Eg. ruby 2.6.1p33

3 Install Rails

at command prompt run

gem install rails

4.) To check rail version installed . At command prompt run

rails -v

you will see output Eg. rails 5.2.3

5.)To create an application directory eg rails project. Cd C:> to any directory location and type

rails new myRailsApp

This will create myRailsApp at c:/ directory if everything were okay.

In your case it will work at this point and that is why it shows the error above.

Note:

But Remember that your app working directory**(myRailsApp)** were created despite the error you posted above which was caused by sqlite3.

At this point open your app directory and type the code below at command propmt to update some missing gem files

C:\myRailsApp>ridk exec pacman -S mingw-w64-x86_64-dlfcn

Press enter and it will be installed.

Now open a file called GemFile at your root application directory eg. C:\\myRailsApp

There change this line

gem 'sqlite3'

to this below and save

gem 'sqlite3', git: "https://github.com/larskanis/sqlite3-ruby", branch: "add-gemspec"

The solution here is based on Larskanis approach

Then run bundle install at

C:\myRailsApp>bundle install

and your app will compile without any error.

To test if the ruby is running start the server with command rails server at your project directory

C:\myRailsApp>rails server

or you can also start it by navigating to the bin directory

C:\myRailsApp\bin>rails server

open browser at http://localhost:3000 and viola!!!

I resolved it with this command:

gem install sqlite3 ver '1.4.0' — source ' https://rubygems.org/ '

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM