MacPorts+rbenv環境でrubyがビルドできない問題を解決

Pexels photo 270408

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

いまひとつ釈然としませんが、今後の各環境のバージョンアップによって整合性がとれる事を期待したいと思います。