如何在Windows10的滑轨上安装sqlite3 for ruby

时间:2019-02-22 10:54:46

标签: ruby-on-rails ruby sqlite

当我调用rails来构建新应用程序的框架(即rails 5.1.3 new flix)时,出现错误,即命令输出的最后一部分是

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

运行gem install sqlite3 -v '1.4.0'时,出现以下错误消息

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

如果有人在Windows 10中安装了sqlite,请指导我。

非常感谢。

3 个答案:

答案 0 :(得分:1)

如错误消息中所述,您需要首先在计算机上安装SQLite 3(http://www.sqlite.org/)。红宝石gem sqlite3仅为您提供了一种使用Ruby的SQLite 3的方法,但是仍然需要将其安装在您的系统上。

答案 1 :(得分:1)

今天(2019年4月10日)我刚刚将红宝石安装在轨道上。我花了时间写这篇文章

当我尝试在Rails应用程序的工作目录中遇到相同的问题。

这是我遵循的非常有效的步骤,没有任何错误。

1。)从以下位置下载Ruby安装程序 link 在这里,我下载了 Ruby + Devkit 2.6.1-1(x86),因为它使用的是32位Windows OS。

运行安装文件

2。)通过评估其红宝石版本来检查是否安装了红宝石

在命令提示符下键入

ruby -v

您将看到输出例如。红宝石2.6.1p33

3安装Rails

在命令提示符下运行

gem install rails

4。)检查安装的滑轨版本。 在命令提示符下运行

rails -v

您将看到输出例如。导轨5.2.3

5。)创建应用程序目录,例如rails项目。 Cd C:>到任何目录位置并键入

rails new myRailsApp

如果一切正常,这将在c:/目录中创建 myRailsApp

在您的情况下,它现在将起作用,这就是为什么它显示上面的错误。

注意:

但是请记住,尽管您上面发布的错误是由sqlite3引起的,但您的应用程序工作目录**(myRailsApp)**是已创建的。

这时打开您的应用目录,并在命令propmt处键入以下代码以更新一些缺少的gem文件

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

按Enter,它将被安装。

现在在您的根应用程序目录中打开一个名为 GemFile 的文件。 C:\ myRailsApp

请更改此行

gem 'sqlite3'

在下面保存并保存

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

此处的解决方案基于 Larskanis方法

然后在

处运行捆绑软件安装
C:\myRailsApp>bundle install

,您的应用程序将编译,没有任何错误。

测试红宝石是否正在运行 在项目目录中使用命令 rails server 启动服务器

C:\myRailsApp>rails server

或者您也可以通过导航到bin目录来启动它

C:\myRailsApp\bin>rails server
http://localhost:3000 和viola中打开

浏览器!

答案 2 :(得分:0)

我用以下命令解决了它:

gem install sqlite3 ver'1.4.0'-源'https://rubygems.org/'