Dec 072008
sqlite3-rubyのgem updateを実行してみたらnmakeがないと言われて失敗してしまう。
C:\ruby\bin>gem update sqlite3-ruby Updating installed gems 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 sqlite3-ruby checking for fdatasync() in rt.lib... no checking for sqlite3.h... no nmake 'nmake' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 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
Visual Studio 2008 Expressは入れてあるのだがnmakeにパスを通しただけではうまくいかない。
C:\ruby\bin>"C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" Setting environment for using Microsoft Visual Studio 2008 x86 tools. C:\ruby\bin>gem update sqlite3-ruby Updating installed gems 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 sqlite3-ruby checking for fdatasync() in rt.lib... no checking for sqlite3.h... no nmake Microsoft(R) Program Maintenance Utility Version 9.00.30729.01 Copyright (C) Microsoft Corporation. All rights reserved. NMAKE : fatal error U1073: 'ruby.h' のビルド方法が指定されていません。 Stop. 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
どうやらsqlite自体のヘッダーファイルなど、ビルド環境を整えないといけないらしいが、そこまでやるのも大変だ。
で、いろいろ調べてみるとバイナリが提供されているバージョン番号を指定すればうまくいくことがわかった。
C:\ruby\bin>gem install sqlite3-ruby --version=1.2.3 Successfully installed sqlite3-ruby-1.2.3-x86-mswin32 1 gem installed Installing ri documentation for sqlite3-ruby-1.2.3-x86-mswin32... Installing RDoc documentation for sqlite3-ruby-1.2.3-x86-mswin32... C:\ruby\bin>
ビルドされたバイナリが提供されているかどうかは、RubyForge: SQLite-Ruby: ファイルリストで、*-mswin32.gemなファイルがあるか否かでわかる(のだと思う)。
Sorry, the comment form is closed at this time.