这是对这个问题的跟进。
当我在 Windows 上发出gem update
命令时,只要它到达一个最新版本没有 Windows 二进制文件的 gem,它就会尝试构建本机扩展,这当然会失败。例如:
Updating sqlite3-ruby
Building native extensions. This could take a while...
ERROR: While executing gem ... (Gem::Installer::ExtensionBuildError)
ERROR: Failed to build gem native extension.
c:/ruby/bin/ruby.exe extconf.rb update
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.
要求所需平台的旧的 pre-1.x 行为至少使更新成为可能。现在我根本无法更新,除非我卸载麻烦的 gem(目前是 sqlite3-ruby 和 hpricot),运行更新,然后使用 --version 开关重新安装 gem。
有没有人有解决这个难题的方法,还是我们被困住了?
笔记:
$ gem -v
1.2.0
$ ruby -v
ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]
注意(2008 年 9 月 26 日):我刚刚更新到 gems 1.3.0,这个问题仍然存在。
注意(2008 年 11 月 18 日):刚刚更新到 gems 1.3.1,问题仍然存在。
注意(2009 年 4 月 28 日):最新版本的 Gems ( 1.3.2 ) 现在会跳过在更新期间构建原生扩展失败的任何 gem;换句话说,问题是固定的。万岁!