Ruby 3.2.0が出たので早速環境構築した(M1 mac対応もあり)

毎年のクリスマスの大事なイベントのRubyのリリースがされていた

今回の目玉はWASIベースのWebAssemblyサポートと実用段階になったYJITが大きそう

WASIはまあ一旦置いておいてインストール時に意識するのはYJITだ

 

www.ruby-lang.org

 

Rust環境のセットアップ

環境を用意していなかったので公式にしたがって用意する

 

www.rust-lang.org

 

とは言ってもこれだけで済む。RubyとかPythonより楽だ

$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

 

Ruby 3.2.0のインストール

rustcが動いたら問題無しなので早速インストールする

CRuby を YJIT を有効としてビルドするためには、rustc >= 1.58.0 をインストールした上で、 ./configure を --enable-yjit オプションを付与して実行する必要があります

Linux

基本的にはいつもどおり、 .rbenv/plugins/ruby-build/ を更新して3.2.0が対応されているのを確認する

まずはYJITを無視してインストールしてみる。最低限の確認はしておいたほうが良い

rbenv install 3.2.0

問題は無いので、YJITを有効化する。configureに--enable-yjitを渡すだけなのでrbenvからだとCONFIGURE_OPTSを利用するので良いだろう

$ CONFIGURE_OPTS="--enable-yjit" rbenv install 3.2.0

こちらも問題が無い。インストールログを見てもyjit.cが含まれている

普通にrubyが起動したので良さそうだ

 

macOS

仕事用で会社から貸与されたmacOS M1にインストールをしていく

rustの環境が必要なのでインストールするがこっちは問題無し

 

次にRubyだが、YJIT無しだと普通にインストールが出来たが、問題はYJITを有効化するとエラーになる

Installing openssl-3.0.7...

BUILD FAILED (macOS 12.2.1 using ruby-build 20221225)

どうもopensslを入れようとしてエラーになる。というかそもそもHomebrewでopensslが入っているがそれを使わずに自前で用意しようとしてエラーになっているようだ。具体的には追うつもりは無いのでエラーの理由は知らない...

 

まあこういう場合はopensslを指定してあげれば良いのでRUBY_CONFIGURE_OPTSで指定したら素直にインストールが完了した

$ CONFIGURE_OPTS="--enable-yjit" RUBY_CONFIGURE_OPTS="--with-openssl-dir=/opt/homebrew/Cellar/openssl@3/3.0.7/lib/" rbenv install 3.2.0

ということで今回もRubyの新バージョンがインストール出来たので有り難いですね。開発者の方に感謝しつつ楽しみます

あ、自分用のprovisioningのレシピにRustを追加しないと... まあこれは急がないからそのうちにだな