对Ruby / Rails真的很陌生,在本周末我试图自己解决这个问题后,我试图在这里寻求建议。
我在FreeBSD上完成了一个完整的Ruby / Apache / Passenger设置,我正在尝试完成使用Windows作为Ruby开发环境的任务。
到目前为止:
“> rake db:create”告诉我:
请安装sqlite3适配器:gem install activerecord-sqlite3-adapter
(
sqlite3不是捆绑包的一部分。将其添加到Gemfile。)
我没有“理解”。试图安装activerecord-sqlite3-adapter给我一个“找不到有效的宝石......”
“> gem install sqlite3”返回:
Building native extensions. This could take a while...
ERROR: Error installing sqlite3:
ERROR: Failed to build gem native extension.
D:/Development/Ruby200-x64/bin/ruby.exe extconf.rb
checking for sqlite3.h... *** extconf.rb failed ***
现在我陷入了我甚至不知道我的Ruby on Windows安装状态的地步。我正在尝试遵循主要的Rails教程并且它没有指定任何这些问题(可能是因为Windows上的Ruby似乎是很多人的自然痛苦。)
我错过了什么?!?我只是想在Windows上为Ruby安装sqlite3,看起来很简单吗?
如果我">rais db"
,则会显示SQLite shell:
SQLite version 3.7.15.2 2013-01-09 11:53:05
使用无法解决问题的步骤的类似问题: Installing SQLite 3.6 On Windows 7
答案 0 :(得分:74)
即使问题已经得到解答,我也想发表我的研究报告以帮助其他人。我在网上发现了很多信息,但作为一个Ruby新手,我很难跟进。基本答案来自以下帖子https://github.com/luislavena/sqlite3-ruby/issues/82,其中包含“paulwis”关于如何正确安装sqlite3 for ruby 2.0.0-p0的说明以及对https://github.com/rails/rails/issues/10150的一些评论。所以这就是:
再次获取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中给出的路径)
希望这有助于某人。
答案 1 :(得分:11)
我可以使用以下命令在win XP32上使用ruby2.0.0安装sqlite3:
c:\>gem install sqlite3 --platform=ruby -- --with-sqlite3-dir=C:/distr/sqlite --with-sqlite3-include=C:/distr/sqlite
文件夹C:/distr/sqlite
包含以下文件
所以,基本上我将sqlite-amalgamation-3071602.zip
和sqlite-dll-win32-x86-3071602.zip
提取到C:/distr/sqlite
。
HEADS UP
您仍然需要将sqlite3.dll
和sqlite3.def
的副本放在PATH的某处。恕我直言,最好将sqlite3二进制文件保存在ruby的bin文件夹中。
答案 2 :(得分:2)
这是一个旧线程,但仍然有用。
对我们来说,这就像编辑Gemfile
并为sqlite添加特定版本一样简单:
gem 'sqlite3', '~> 1.3.13
答案 3 :(得分:1)
#!/usr/bin/env sh
mkdir c:/sqlite3x86
wget -P c:/sqlite3x86 http://packages.openknapsack.org/sqlite/sqlite-3.7.15.2-x86-windows.tar.lzma
cd c:/sqlite3x86
bsdtar --lzma -xf c:/sqlite3x86/sqlite-3.7.15.2-x86-windows.tar.lzma
gem install sqlite3 --platform=ruby -- --with-opt-dir=c:/sqlite3x86
cd c:/
rm -rf c:/sqlite3x86
答案 4 :(得分:1)
对于Windows,
转到C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/sqlite3-1.3.13-x64-mingw32/lib/sqlite3.rb
并确保
require "sqlite3"
而非本地
答案 5 :(得分:1)
从此处获取胖二进制文件
https://ci.appveyor.com/project/MSP-Greg/sqlite3-ruby/build/3/job/hhk6ie8gdo545svr/artifacts
和
gem install c:\path\to\downloaded_gem.gem
答案 6 :(得分:0)
为了后人的缘故,我想我会在评论中提出答案。问题似乎是我抓住了一个与SQLite3“尚未”兼容的新版Ruby / Rails(适用于Windows)。
我降级到1.9.x并且能够运行。
答案 7 :(得分:0)
在Windows机器上设置Ruby on Rails的最简单方法是使用RailsInstaller,它会自动为您安装和配置sqlite3。一步。
答案 8 :(得分:0)
您应遵循以下步骤:
gem install bundler
(在Gem文件中添加_)gem 'sqlite3', ' < 1.4'
(添加到宝石文件中)然后运行:
install bundler