Mac 用 Ruby 3.1.3 のインストール中の OpenSSL エラーを解決する方法
概要
(Jeykll をインストールする手順に従って) Ruby-install Ruby 3.1.3 をインストールしようとすると、以下のエラーが発生します。問題は、このリンクに Ruby のバージョン 3.1 以降には OpenSSL 3 が必要であると書かれていることだと思いますが、ruby-install Ruby 3.1.3 を実行すると OpenSSL 1.1 がインストールされ、これがリンクされていてインストールが失敗するのだと思います。 RUBY_CONFIGURE_OPTS は、github の指示に従って正しく設定されています。
ossl_ts.c:829:5: error: incomplete definition of type 'struct TS_verify_ctx'
TS_VERIFY_CTX_set_certs(ctx, x509inter);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./openssl_missing.h:215:46: note: expanded from macro 'TS_VERIFY_CTX_set_certs'
# define TS_VERIFY_CTX_set_certs(ctx, crts) TS_VERIFY_CTS_set_certs(ctx, crts)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./openssl_missing.h:195:52: note: expanded from macro 'TS_VERIFY_CTS_set_certs'
# define TS_VERIFY_CTS_set_certs(ctx, crts) ((ctx)->certs=(crts))
~~~~~^
/opt/homebrew/Cellar/openssl@3/3.1.3/include/openssl/ts.h:407:16: note: forward declaration of 'struct TS_verify_ctx'
typedef struct TS_verify_ctx TS_VERIFY_CTX;
^
1 warning and 1 error generated.
make[2]: *** [ossl_ts.o] Error 1
make[1]: *** [ext/openssl/all] Error 2
make: *** [build-ext] Error 2
!!! Compiling ruby 3.1.3 failed!
これはどうすれば解決できますか?
関連リンク 次の手順を試しましたが、問題が解決しないようです: 1、2、3、4、5
解決策
それは引数に問題がある可能性があります。以下を試してください
export CONFIGURE_ARGS=""
for ext in openssl readline libyaml zlib; do
CONFIGURE_ARGS="${CONFIGURE_ARGS} --with-$ext-dir=$(brew --prefix $ext)"
done