更新:查看此后续问题:Windows上的Gem更新 - 是否已损坏?
在Windows上,当我这样做时:
gem install sqlite3-ruby
我收到以下错误:
Building native extensions. This could take a while... ERROR: Error installing sqlite3-ruby: ERROR: Failed to build gem native extension. c:/ruby/bin/ruby.exe extconf.rb install sqlite3-ruby --platform Win32 checking for fdatasync() in rt.lib... no checking for sqlite3.h... no nmake 'nmake' is not recognized as an internal or external command, operable program or batch file. Gem files will remain installed in c:/ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4 for inspection. Results logged to c:/ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4/ext/sqlite3_api/gem_make.out
同样的事情发生在hpricot gem上.我似乎记得这些宝石在<1.0宝石上安装得很好,但现在我在1.2.0上,事情变得棘手了.
我也试过这个:
gem install sqlite3-ruby --platform Win32
不用说,这也不起作用(同样的错误)
有谁知道这里发生了什么以及如何解决这个问题?
更新:查看此后续问题:Windows上的Gem更新 - 是否已损坏?
正如Nathan建议的那样,这似乎与sqlite3-ruby和hpricot gems的最新版本似乎没有Windows版本的事实有关.这是面对这种情况时要做的事情(注意,gem的名称是自动通配符,所以你可以只键入sql并获取以sql开头的所有gem的列表):
$ gem list --remote --all sqlite *** REMOTE GEMS *** sqlite (2.0.1, 2.0.0, 1.3.1, 1.3.0, 1.2.9.1, 1.2.0, 1.1.3, 1.1.2, 1.1.1, 1.1) sqlite-ruby (2.2.3, 2.2.2, 2.2.1, 2.2.0, 2.1.0, 2.0.3, 2.0.2) sqlite3-ruby (1.2.4, 1.2.3, 1.2.2, 1.2.1, 1.2.0, 1.1.0, 1.0.1, 1.0.0, 0.9.0, 0.6.0, 0.5.0)
然后,您可以选择要安装的版本:
gem install sqlite3-ruby -v 1.2.3
为了成功安装hpricot,我这样做了:
gem install hpricot -v 0.6
令人讨厌的是,gem update
尝试将宝石更新为最新的,破碎的Windows版本.当更新例程遇到错误时,它会使您退出整个过程.有一个(哈克)解决了这个问题在这里.
那么,这个问题是宝石中的一个错误吗?宝石是不是会自动检测平台并安装最新的兼容版本?
我在Ubuntu上遇到了同样的问题,这解决了我的问题:
http://newsgroups.derkeiler.com/Archive/Comp/comp.lang.ruby/2008-08/msg00339.html