ruby-on-rails - 如何在 Windows 上为 Ruby 安装 sqlite3?

标签 ruby-on-rails ruby windows sqlite

作为 Ruby/Rails 的新手,在本周末尝试自己解决问题后,我正在尝试在这里寻求建议。

我在 FreeBSD 上完成了一个完整的 Ruby/Apache/Passenger 设置,我正在尝试完成使用 Windows 作为 Ruby 开发环境的任务。

到目前为止:

  • 已安装 Ruby,v2.0.0p0 (2013-02-24) [x64-ming32]
  • Rails 已安装,v.3.2.12
  • 我安装并注册了 Ruby 开发工具包。
  • 我已将 sqlite3 dll/exe 复制到 Ruby“bin”文件夹(该文件夹也在我使用“使用 Ruby 启动命令提示符”控制台的路径中。)
  • 我可以成功启动 Rails 服务器,并继续 http://guides.rubyonrails.org/getting_started.html 3.3 教程。
  • ">rake db:create"告诉我:

    请安装 sqlite3 适配器:gem install activerecord-sqlite3-adapter ( sqlite3 不是 bundle 的一部分。将其添加到 Gemfile。)

我对此一无所知。尝试安装 activerecord-sqlite3-adapter 时出现“找不到有效的 gem...”

  • ">gem install sqlite3"返回:

    构建 native 扩展。这可能需要一段时间... 错误:安装 sqlite3 时出错: 错误:无法构建 gem native 扩展。

    D:/Development/Ruby200-x64/bin/ruby.exe extconf.rb 正在检查 sqlite3.h... *** extconf.rb 失败 ***

现在,我什至不知道我的 Ruby on Windows 安装处于什么状态。我正在尝试遵循主要的 Rails 教程,但它没有指定任何这些问题(可能是因为 Windows 上的 Ruby 对很多人来说似乎是一种天生的痛苦。)

我错过了什么?!?我只是想在 Windows 上为 Ruby 安装 sqlite3,看起来很简单吧?

如果我执行 ">rais db",则会显示 SQLite shell:

SQLite 版本 3.7.15.2 2013-01-09 11:53:05

具有无法解决我的问题的步骤的类似问题: Installing SQLite 3.6 On Windows 7

最佳答案

即使问题已得到解答,我还是想发布我的研究成果以帮助他人。我在网上找到了很多信息,但作为一个 Ruby 新手,我很难理解所有这些信息。基本答案来自以下帖子 https://github.com/luislavena/sqlite3-ruby/issues/82 “paulwis”关于如何为 ruby​​ 2.0.0-p0 正确安装 sqlite3 的说明以及关于 https://github.com/rails/rails/issues/10150 的一些评论.所以这里是:

  1. 为您的设置安装 Ruby Devkit(DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe,因为我使用的是 x64 机器)
  2. 从 Sqlite.org 下载并解压 autoconf 包
  3. 运行 msys.bat(它在 ruby​​ devkit 根文件夹中)
  4. cd 到您下载 sqlite 源的路径(例如:如果您是 MSYS/MINGW32 的新手,路径“c:\dev\sqlite3”的“cd/c/dev/sqlite3”)
  5. 运行“./configure”
  6. 运行“制作”
  7. 运行“安装”
  8. 再次获取 sqlite3 gem,这次指定平台和新编译的二进制文件的路径:

    gem install sqlite3 --platform=ruby -- --with-sqlite3-include=[path\to\sqlite3.h] --with-sqlite3-lib=[path\to\sqlite3.o]
    

    例如:

    gem install sqlite3 --platform=ruby -- --with-sqlite3-include=/c:/dev/sqlite3/ --with-sqlite3-lib=/c:/dev/sqlite3/.libs/
    

    (来自第 4 步中给出的路径)

  9. 检查 Rails 应用的 Gemfile.lock 并确保它指向正确的 sqlite3 版本。我的是“sqlite3(1.3.7-x86-mingw32)”并手动将其更改为“sqlite3(1.3.7-x64-mingw32)”。删除平台也有效:“sqlite3 (1.3.7)”。

希望这对某人有帮助。

关于ruby-on-rails - 如何在 Windows 上为 Ruby 安装 sqlite3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15480381/

相关文章:

html - Nokogiri 从 html 中提取节点

java - 为什么浏览器找不到java插件?

c# - 在处理 HTTP 客户端时如何知道何时关闭套接字?

javascript - 关闭应用程序时在 Windows Phone 8.1 中处理 toast 通知

ruby-on-rails - 带有嵌入式文档的 Mongoid 急切加载

ruby-on-rails - 使用脚本/delay_job 创建 delayed_job worker 时出现未定义方法错误

ruby-on-rails - 检查 create rails 上的记录是否成功创建

mysql - PORO 可以访问数据库吗?

ruby-on-rails - 如何将参数中的值存储在数组中

ruby - rbenv 系统范围安装导致不安全操作