【问题标题】:How do I install SQLite3 while setting up Ruby on Rails?如何在设置 Ruby on Rails 时安装 SQLite3?
【发布时间】:2025-03-08 20:30:01
【问题描述】:

我是编程新手,我正在尝试为 Windows 10 安装 Ruby on Rails。

我已经多次尝试运行 gem install bundler,但 SQLite3 总是出错。

命令提示符说要从http://www.sqlite.org/ 安装 SQLite3,但我不知道将它放在目录中的什么位置。

我查看了mkmf.log,但我不明白它在告诉我什么。

当我查看 RailsInstaller 的“bin”文件夹 sqlite3.def 时,出现了 sqlite 3.dll sqlite3 应用程序和 sqlite3_ruby(文件和批处理文件)。

如果有人知道可能出了什么问题以及如何解决问题,我将非常感谢您的帮助,在线操作指南上绝不会出现此问题。

非常感谢

命令提示信息:

安装 sqlite3 (1.4.0) 时出错,Bundler 不能 继续。在捆绑之前确保gem install sqlite3 -v '1.4.0' --source 'https://rubygems.org/' 成功。

在 Gemfile 中:sqlite3

C:\Sites\test_app>gem install sqlite3 -v 1.4.0 暂时增强 包含 DevKit 的路径...构建本机扩展。这可能需要 一会儿... 错误:安装 sqlite3 时出错: 错误:无法构建 gem 原生扩展。

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 ./siteconf20190317-7152-n0tljg.rb extconf.rb 检查 sqlite3.h... 没有 sqlite3.h 丢失。从http://www.sqlite.org/ 安装 SQLite3 第一的。 * extconf.rb failed * 由于某种原因无法创建 Makefile,可能缺少必要的库和/或头文件。查看 mkmf.log 文件以获取更多详细信息。您可能需要配置 选项。

提供的配置选项: --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 --没有-make-prog --srcdir=。 --curdir --ruby=C:/RailsInstaller/Ruby2.3.​​3/bin/$(RUBY_BASE_NAME) --with-sqlcipher --没有-sqlcipher --with-sqlite3-config --without-sqlite3-config --with-pkg-config --without-pkg-config --with-sqlcipher --没有-sqlcipher --with-sqlite3-dir --没有-sqlite3-dir --with-sqlite3-include --without-sqlite3-include=${sqlite3-dir}/include --with-sqlite3-lib --without-sqlite3-lib=${sqlite3-dir}/lib

要查看此扩展无法编译的原因,请查看 mkmf.log 可以在这里找到:

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

extconf 失败,退出代码 1

Gem 文件将继续安装在 C:/RailsInstaller/Ruby2.3.​​3/lib/ruby/gems/2.3.0/gems/sqlite3-1.4.0 检查。结果记录到 C:/RailsInstaller/Ruby2.3.​​3/lib/ruby/gems/2.3.0/extensions/x86-mingw32/2.3.0/sqlite3-1.4.0/gem_make.ou

【问题讨论】:

  • 你真的买了最新版的sqlite吗?我在安装 1.4 版时也遇到了问题,但 1.3.13 版对我来说没有问题。
  • 感谢您的回答 - 它说安装正常,但是当我创建一个新的 Rails 文件时,它一直尝试安装 sqlite3 1.4.0... 1.3.13 在 C:\Ruby25-x64\ lib\ruby\gems\2.5.0\gems,我需要把它移到别的地方吗?

标签: ruby-on-rails ruby sqlite rubygems


【解决方案1】:

Rails 尝试自动安装最新版本的 sqlite3 gem (1.4),但该新版本尚不能与 Rails 一起使用。指定一个像这样工作的版本:

宝石文件

gem 'sqlite3', '< 1.4'

然后重新运行bundle install

【讨论】:

  • 谢谢 - 像 C:\Users\Owner>gem 'sqlite3', 'gem install sqlite3 1.3.13 但它似乎在“缺少功能 dlopen”时失败了。
  • @SJM1 不。在您的 Rails 应用程序目录中,有一个名为 Gemfile 的文件。打开该文件并将当前显示gem 'sqlite3' 的行更新为上面的行,它指定要安装的版本。然后保存该文件并在与Gemfile 相同的目录中在命令行上运行bundle install
  • 我用写字板打开它(有很多名为 Gemfile 的文件,只有一个带有该行)并更新了它,但我不确定我是否正确运行了捆绑安装文件。当您说与 Gemfile 在同一目录中时,您是指在文件夹中还是在命令提示符中?它仍在尝试安装 1.40。
  • @SJM1 bundle install 将从命令提示符调用,如cd c:\path\to\your\rails\app &amp;&amp; bundle install
  • 嗯,找不到,我可能得找个能亲自和我一起经历的人。感谢@Unixmonkey 提供的所有帮助
【解决方案2】:

我有同样的问题。打开项目文件夹中的 Gemfile 并将行 gem 'sqlite3' 更改为 gem 'sqlite3', '

gem 'sqlite3'gem 'sqlite3', '&lt; 1.4'

【讨论】:

    【解决方案3】:
    1. 不要在 Windows 上运行代码
    2. 如果确实需要,请使用 gem 1.3.13
    gem install sqlite3 -v 1.3.13
    

    这不会为 Windows 安装本机扩展。因此不会导致任何错误。

    【讨论】: