Skip to content

Instantly share code, notes, and snippets.

@unak
Last active November 11, 2023 06:45
Show Gist options
  • Star 7 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save unak/54d68e1b7b96864457c116123a75eace to your computer and use it in GitHub Desktop.
Save unak/54d68e1b7b96864457c116123a75eace to your computer and use it in GitHub Desktop.
RubyをVisual C++でビルドする 2022.04版(+2022.12・2023.06追記)

Visual C++をインストールする

というか、Visual Studioになるわけだが。 普通はCommunity Editionで問題ないと思うが、用途に応じてライセンスを選ぶこと。 インストールする際には、Windowsデスクトップ開発とかいうのを選ぶ。他はお好みで。 あー、確認してないけど、英語の言語パックは入れた方が多分いいです。入れないとだめかもしれない(thx hsbtさん)。

vcpkgをインストールする

GitHubにあるので、READMEの手順に従えばいい。 この過程でgitも入ることになる。

rubyの依存パッケージをインストールする。

最低限必要な気がするのは以下の通り。

  • zlib
  • openssl
  • libffi
  • libyaml

あとはお好みでreadlineくらいか。 すべて、(path to vcpkg)\vcpkg install (パッケージ名):x64-windows でインストールすること。

その後、Windowsの[設定]→[システム]→[バージョン情報]→[システムの詳細設定]→[詳細設定]→[環境変数(N)...]にて、ユーザー環境変数(システム環境変数でもいいけど)に、

  • Path : (path to vcpkg)\installed\x64-windows\bin
  • INCLUDE : (path to vcpkg)\installed\x64-windows\include
  • LIB : (path to vcpkg)\installed\x64-windows\lib

を、それぞれ[編集(E)...]して追加または[新規作成(N)...]して設定しておく。

※ここまでやればrubyの安定版リリースについてはビルド可能なので、それでいい人は次は飛ばしてよい。

bisonとsed

なんでもいいと思うのだが、とりあえず原則としてGnuWin32で用意することにする。

とりあえずこんだけ必要。いずれもBinariesで拾ってきて、中身をどっかにぶちまける。 その上で、上記と同じ感じで環境変数Path(ぶちまけたフォルダ)\binを追加する。

ruby安定版のビルドとインストール

適当な……というか、なるべく新しいruby安定版の配布物をRuby公式サイトから拾ってくる。 これを適当な場所に展開したら、[スタート]→[すべてのアプリ]→[Visual Studio XXXX]→[x64 Native Tools Command Prompt for VS XXXX]でコマンドプロンプトを開き、以下のように実行する。 (以下、「適当な場所」=C:\tekito、「ruby安定版のバージョン」=3.1.1、「rubyをインストールする場所」=C:\ruby-3.1.1とするので、適宜読み替えること)

C:\tekito> cd ruby-3.1.1
C:\tekito\ruby-3.1.1> win32\configure.bat --prefix=C:/ruby-3.1.1
C:\tekito\ruby-3.1.1> nmake all install

これで、C:\ruby-3.1.1\bin\ruby.exeで安定版のrubyを実行できるようになっているはずである。お好みでパスを通すとよい。

ruby開発版のビルドとインストール

上述のコマンドプロンプト以下で実行するのが前提。フォルダ名などは適宜好きなように読み替えること

C:\> git clone https://github.com/ruby/ruby
C:\> cd ruby
C:\ruby> win32\configure.bat --prefix=C:/ruby-master --baseruby=C:/ruby-3.1.1/bin/ruby.exe
C:\ruby> nmake all install
C:\ruby> nmake up all install

これで、C:\ruby-master\bin\ruby.exeで開発版最新のrubyを実行できるようになっているはずである。 開発版なので、時折失敗するが、まあそれはそういうことで。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment