Ruby を Windows 環境でビルド

以前 Ruby の Windows 環境 (備忘録) - @watson1978 の日記 で Ruby を Windows でビルドできるように環境を用意したのですが Visual Studio のアップデートなどで手順に差分が生じたので、また備忘録がてら作業ログを残しておきます。

以下の記事を参考にしています。

Visual Studio

https://visualstudio.microsoft.com/ja/ から Visual Studio Community 2022 をダウンロード。

個別のコンポーネントで以下のものをインストール。(これが最小限のコンポーネントなのかは不明)

  • C++ コア機能
  • Windows ユニバーサル CRT
  • MSVC v143 - VS 2022 c++ x64/x86 ビルドツール (最新)
  • Windows 用 C++ CMake ツール
  • v143 ビルドツール用 C++ Clang-cl (x64/x86)
  • Windows 10 SDK (10.0.20348.0)
  • Windows Universal CRT SDK

言語パックのタブで英語環境を入れておく

  • 英語

vcpkg でライブラリをインストール

vcpkg --triplet  x64-windows install libffi libiconv libxml2 libxslt libyaml openssl-windows readline

openssl の代わりに openssl-windows をインストールした。openssl を指定すると v3.0.5 がインストールされる。openssl-windows だと v1.1.1h と古い openssl がインストールされる。古い Ruby は openssl v3.0.5 だとビルドできなかったりするので、openssl-windows を利用した。

※ 2024/01/28 追記 openssl-windows で v1.1.1h がインストールされなくなってます。https://github.com/microsoft/vcpkg/issues/35264 あたりの回避策で頑張ってインストールする必要があります。

bison のインストール

RubyInstaller の pacman を利用した。

pacman -S bison

環境変数の設定

参考にした記事に沿って環境変数を設定したくらい。

Ruby をビルド

Visual Studio をインストールしたときに x64 Native Tools Command Prompt for VS 2022 というコマンドプロンプトがメニューに作成されているので、それを起動するとコンパイラの設定などがいい感じに行われている。

Ruby のソースコードを展開したルートディレクトリで以下のコマンドを実行する。

win32\configure.bat --with-opt-dir=/vcpkg/installed/x64-windows
nmake install