macOS Big SurのMacPorts環境で、rbenv(手動インストールした)を利用してRubyがビルドできなくなっている事に気がつきました。
例えば以下のコマンドを実行すると、最終的に「BUILD FAILED」と表示されインストールできないのです。
$ RUBY_CONFIGURE_OPTS="--with-openssl-dir=/opt/local --with-readline-dir=/opt/local" rbenv install 2.7.5 Downloading ruby-2.7.5.tar.bz2... -> https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.5.tar.bz2 Installing ruby-2.7.5... BUILD FAILED (macOS 11.6.1 using ruby-build 20211203)
RUBY_CONFIGURE_OPTSはこれまでも指定していたのでこれは問題ないはずです…。
openssl3が原因か
ビルド失敗のログファイルを確認してみると「cannot load such file — openssl (LoadError)」が表示されている事にきがつきました。どうやらopensslのバージョンが3に上がってしまいこれが原因でビルドに失敗している模様です。
$ sudo port installed | grep openssl openssl @1.1_4 openssl @1.1.1k_0 openssl @1.1.1l_1 openssl @3_1 (active) openssl3 @3.0.0_6+legacy (active) openssl11 @1.1.1l_5 (active) php74-openssl @7.4.19_0 php74-openssl @7.4.24_0 php74-openssl @7.4.25_0 php74-openssl @7.4.26_0 (active)
openssl11というパッケージがあるので「–with-openssl-dir」オプション等で設定できればいいのですがうまくいきません。
結局ruby-buildがopensslを独自にダウンロードするようになったという情報を発見し「–with-openssl-dir」の指定を外すことで、ビルドに成功しました。
$ RUBY_CONFIGURE_OPTS="--with-readline-dir=/opt/local" rbenv install 2.7.5
いまひとつ釈然としませんが、今後の各環境のバージョンアップによって整合性がとれる事を期待したいと思います。