トップ «前の日記(2017/06/17 (土) ) 最新 次の日記(2017/06/19 (月) )» 編集 RSS feed

HsbtDiary


2017/06/18 (日) [長年日記]

RubyInstaller2 で Ruby 2.4 を Windows 10 に入れる

msvc の環境を作る前に ruby をビルドするには ruby がいるので、特に何も考えないで RubyInstaller2 を入れる。噂だと 2 というのは msys2 の 2 という話があるけど真偽はわかりません。

ポチポチ ok をクリックして C:\opt\Ruby24-x64 にインストールしてから、msys2 の build toolchain も一緒に入れてから、msys2 以外からも使えるように PATH を通して終わり。

Windows 10 に msvc でビルドする Ruby の開発環境を作る

無事 Ruby が Windows に入ったので Visual Studio を使って msvc な Ruby のビルド環境を作っていく。

ちょっと書くのが遅くなって、すでに成瀬さんが 2017年のruby-mswin事情 - なるせにっき という感じで vcpkg を使って最短で構築する手順がまとまっているので、こっちでは openssl, zlib を手で入れてビルドするという手順を書いていきます。

ディレクトリ構成は今までの流れにそって C:\opt\local\src\github.com\ruby\ruby にソースコードを置いて、C:\opt\ruby.build\ の下にアーキテクチャ毎に vs2017-x64, vs2015-x86 というように適当にフォルダを掘る。

まずはコンパイラがないと話にならないので、成瀬さんのエントリに書いてあるパッケージか、Visutal Studio Community などを使ってインストールをする。2013 だと、Windows SDK とか選択しないと rc.exe が無くて右往左往するので、C 関連と Windows SDK はインストールした方が良いようです。この辺、結局最小が何なのかは自分もよくわからない...

openssl の準備

OpenSSL を自分でビルドするのはめんどいので、自分は LibreSSL を使うことにしている。

https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/

上の URL から最新版(2017/06 時点は 2.5.4)の windows バイナリをダウンロードして C:\opt\libressl-2.5.4-windows などに展開して、x86, x64 それぞれのディレクトリの libssl-43.lib を ssl.lib へ、libcrypto-41.lib を crypto.lib へコピーしてリネーム。

(これ、 usa さんがリネームしなくても動くようにしたんだっけ...?)

zlib の準備

zlib も https://zlib.net/ からソースコードをダウンロードして C:\opt\zlib-1.2.11 などへ展開。Visual Studio の "x64 Native Tools Command Prompt for VS 2017" などから展開したフォルダに移動して

nmake -f win32\Makefile.msc

で dll や lib などをビルド、これもアーキテクチャごとに用意しておきたいので x86 と x64 それぞれでビルドしてできたものを C:\opt\zlib-1.2.11\x64 などというように手動でコピーしておく。

Ruby のビルド

ここまで来たら以外と楽で、Ruby のビルドディレクトリからソースコードディレクトリにある configure.bat を実行する。以下はビルドオプションの例です。

x86 用

..\..\local\src\github.com\ruby\ruby\win32\configure.bat --without-ext=+,dbm,gdbm,readline --enable-bundled-libffi --with-zlib-include=C:/opt/zlib-1.2.11 --with-zlib-lib=C:/opt/zlib-1.2.11/x86 --with-openssl-include=C:/opt/libressl-2.5.4-windows/include --with-openssl-lib=C:/opt/libressl-2.5.4-windows/x86

x64 用

..\..\local\src\github.com\ruby\ruby\win32\configure.bat --without-ext=+,dbm,gdbm,readline --enable-bundled-libffi --with-zlib-include=C:/opt/zlib-1.2.11 --with-zlib-lib=C:/opt/zlib-1.2.11/x64 --with-openssl-include=C:/opt/libressl-2.5.4-windows/include --with-openssl-lib=C:/opt/libressl-2.5.4-windows/x64

上記を vs2013, vs2015, vs2017 と x86, x64 それぞれの組み合わせで実行して、それぞれ nmake でビルドできます。次は msys2 版のビルド環境に続きます。