Visual Studio 2008でruby(1.8.7-p160)、rubygems(1.3.2)を素からコンパイル&インストールしてみた。
Visual Studio6.0持ってないからいろいろコンパイルできないとエラー
→そんじゃ持ってるのでコンパイルしていれればいいんじゃね?
というわけでやってみた。
今回使ったのは Visual Studio 2008 Pro(Academic)だけど多分Expressでもいけるとおもう。
下準備
スタートメニュー
→すべてのプログラム
→Microsoft Visual Studio 2008
→Visual Studio Tools
→Visual Studio 2008 コマンド プロンプト
としてVisual Studio 2008 コマンド プロンプト(以降cmdと省略)を起動。
まずは次のように*1
>cd c:\ >mkdir ruby >cd ruby >mkdir bin lib include src >PATH c:\ruby\bin;%PATH% >cd src
zlib-1.2.3.tar.gz
ruby-1.8.7-p160.tgz
rubygems-1.3.2.tgz
をc:\ruby\srcにDLして保存。(ダウンロード方法は自由に)
tarとgzip入れてパスを通してあるならcmdに次のように。
>tar zxvf zlib-1.2.3.tar.gz >tar zxvf ruby-1.8.7-p160.tgz >tar zxvf rubygems-1.3.2.tgz
cmdはそのまま閉じないでおく。
zlib
エクスプローラでC:\ruby\src\zlib-1.2.3を開いて
zlib.hとzconf.hをC:\ruby\includeへcopy。
そのあと
projects\visualc6と進んで
zlib.dswを実行。
変換するというダイアログが出るので「すべてはい」を選択。
あとはDLL Releaseを選択し、ソリューションエクスプローラからzlibを右クリックしてビルド。
できたものはC:\ruby\src\zlib-1.2.3\projects\visualc6\Win32_DLL_Releaseにある。
中のもののうち
zlib1.dllをc:\ruby\binにcopy
zlib1.libをc:\ruby\libにcopy
これでおk。
ruby
cmdにて次のようにする。
>cd ruby-1.8.7-p160 >win32\configure.bat >nmake >nmake test >nmake DESTDIR=C:\ruby install >cd ext/zlib >ruby extconf.rb --with-zlib-include=C:\ruby\include >nmake >nmake install >cd ../..
rubygems
>cd rubygems-1.3.2 >ruby setup.rb >nmake >nmake test >nmake install
ここで試しにrails入れようとしたらこけた。
調べるとC:\ruby\lib\ruby\site_ruby\1.8\rubygems\package\tar_input.rb
のzipped_stream(entry)を次のように変更する必要があるらしい。
def zipped_stream(entry) if defined? Rubinius then zis = Zlib::GzipReader.new entry dis = zis.read is = StringIO.new(dis) else # This is Jamis Buck's Zlib workaround for some unknown issue entry.read(10) # skip the gzip header zis = Zlib::Inflate.new(-Zlib::MAX_WBITS) ######### EDIT START ### #is = StringIO.new(zis.inflate(entry.read)) __buf = "" while __temp = entry.read( 128 * 1024 ) do __buf << zis.inflate( __temp ) end is = StringIO.new( __buf ) ######### EDIT END ##### end ensure zis.finish if zis end
これで通った。
+α
rubyまでのパス(c:\ruby\bin)を環境変数PATHへ登録しておきましょう。
あとコマンドでruby関係のコマンド(rubygemsとか)を使うときは「Visual Studio 2008 コマンド プロンプト」からやると
ネイティブでコンパイルできたりしていいかも?
余談
twbot.rbが向いていないことが発覚したのでTwitter4rを入れようとしたらこけた - bot構築雑記 - はてなグループ::ついったー部
今までどうやっても入らなかったtwitter4rがこれで入れたらすんなりはいった。なぜだ…
まぁうん、とりあえずこれでbot制作できるようになるからいっか(ぁ