2010年1月2日土曜日

Windows 7 64bitでrubyやmingwやPowershell ISEなどもろもろ(断念)

重要

断念しました。現状gemをうまく動かせていません。rubyの64bitバイナリが独自ビルドされたものという事で、少しずつ環境を整備しながらの構築にはもっと時間とスキルが必要でした。最終的にはAptanaStudio+JRubyの方向に切り替えました。
以下は、断念するまでの記録という事になります。有用な情報でない事をあらかじめご了承願います。

ruby64bitバイナリへのパスも通したし、zlibも導入、nmake(に限らずVCコンパイラ)へのパスも通したので、ここからgemの導入に移っていきます。

まずはheroku用のgemのインストールから。

ISEのプロンプトから、gem install herokuと入力してやります。
うまくいけば、これでmingwの環境にインストールされるはずですが、出てしまいましたエラーが。

PS B:\mingw\x86_64-w64-mingw32\bin> gem install heroku
gem.bat : ERROR: Error installing heroku:
発生場所 行:1 文字:4
+ gem <<<< install heroku
+ CategoryInfo : NotSpecified: (ERROR: Error installing heroku::String) []、RemoteException
+ FullyQualifiedErrorId : NativeCommandError

ERROR: Failed to build gem native extension.

B:/ruby64/bin/ruby.exe extconf.rb install heroku
creating Makefile

nmake

Microsoft (R) Program Maintenance Utility Version 10.00.21003.01
Copyright (C) Microsoft Corporation. All rights reserved.

cl -nologo -I. -IB:/ruby64/include/ruby-1.9.1/x64-mswin64_80 -IB:/ruby64/include/ruby-1.9.1/ruby/backwa
rd -IB:/ruby64/include/ruby-1.9.1 -I. -MD -Zi -O2b2xty- -Zm600 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_
NO_DEPRECATE -Foparser.obj -c -Tcparser.c
parser.c
B:\ruby64\include\ruby-1.9.1\x64-mswin64_80\ruby/config.h(2) : fatal error C1189: #error : MSC version unm
atch: _MSC_VER: 1400 is expected.

NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\cl.EXE"' : re
turn code '0x2'
Stop.


Gem files will remain installed in B:/ruby64/lib/ruby/gems/1.9.1/gems/json-1.1.0 for inspection.
Results logged to B:/ruby64/lib/ruby/gems/1.9.1/gems/json-1.1.0/ext/json/ext/parser/gem_make.out

Building native extensions. This could take a while...



JSONの導入が失敗するようです。
config.hのコンパイラバージョン指定が、VisualStudio2010を対象としていないようです。2010のclのバージョン(ファイルバージョン)は16になりそうですが、config.hの冒頭三行(下記)のバージョンチェック部分を削除してしまいます。



#if _MSC_VER != 1400
#error MSC version unmatch: _MSC_VER: 1400 is expected.
#endif




これでやっと、コンパイルが実行されるようになりました。herokuはJSONに依存しているようなので、JSONのGEMのみ段階的に導入することにしましたが、今度はJSONのビルドがうまく動かない。




checking for ruby/st.h... B:/ruby64/lib/ruby/1.9.1/mkmf.rb:364:in `try_do': The complier failed to generate an executable file. (RuntimeError)
You have to install development tools first.
from B:/ruby64/lib/ruby/1.9.1/mkmf.rb:433:in `try_cpp'

from B:/ruby64/lib/ruby/1.9.1/mkmf.rb:811:in `block in have_header'
from B:/ruby64/lib/ruby/1.9.1/mkmf.rb:670:in `block in checking_for'

        :
        :
        :
      (以下略)



cppを実行しようとする箇所でエラーになっているようです。mswinの場合は、おそらく、cl -logoが呼び出されるはずですが、"You have to install development tools first”とメッセージが出力されるあたり、どうもうまく認識されていないようです。ISEのコマンドからclは実行できているのだが・・・