Ruby 2.7.4 和 3.0.0 在 macOS Big Sur (11.2.3) 上失败:未声明的标识符 RSA_SSLV23_PADDING
Ruby 2.7.4 & 3.0.0 fails on macOS Big Sur (11.2.3): undeclared identifier RSA_SSLV23_PADDING
尝试在 Intel Mac 11.2.3 上安装 Ruby 2.7.4 & Ruby 3,我在编译期间看到以下错误(使用 [=14= 安装] (https://github.com/postmodern/ruby-install)。我看到以下错误:
^
ossl_pkey_rsa.c:942:5: error: use of undeclared identifier 'RSA_SSLV23_PADDING'
DefRSAConst(SSLV23_PADDING);
^
ossl_pkey_rsa.c:877:58: note: expanded from macro 'DefRSAConst'
#define DefRSAConst(x) rb_define_const(cRSA, #x, INT2NUM(RSA_##x))
^
<scratch space>:144:1: note: expanded from here
RSA_SSLV23_PADDING
^
107 warnings and 1 error generated.
make[2]: *** [ossl_pkey_rsa.o] Error 1
make[1]: *** [ext/openssl/all] Error 2
make: *** [build-ext] Error 2
!!! Compiling ruby 2.7.4 failed!
此外,仅供参考:
❯ openssl version
LibreSSL 2.8.3
ruby-install
负责为您安装 OpenSSL 依赖项,但是 ruby-install
中存在错误,它没有指定需要安装的确切 openssl
版本.值得庆幸的是,这已得到修复:
- 将
ruby-install
升级到 >=0.8.3(例如,brew upgrade ruby-install
),这会将 ruby 的 openssl 依赖项固定在 1.1
- 安装 ruby 3(例如,
ruby-install ruby 3.0.2
)
详情:
这已在 ruby-install
中解决(首次报告为 https://github.com/postmodern/ruby-install/issues/409)。 Homebrew 默认 openssl
为 3.0(最新的主要版本),但 Ruby 尚未添加对 OpenSSL3.0 的支持。因此 openssl
依赖项 ruby-install
试图使用错误的版本(Ruby 仍在 1.1)。
仅供将来参考,如果有人遇到与 rvm
类似的问题,只需使用 brew 卸载 openssl@3
并安装 openssl@1.1
尝试在 Intel Mac 11.2.3 上安装 Ruby 2.7.4 & Ruby 3,我在编译期间看到以下错误(使用 [=14= 安装] (https://github.com/postmodern/ruby-install)。我看到以下错误:
^
ossl_pkey_rsa.c:942:5: error: use of undeclared identifier 'RSA_SSLV23_PADDING'
DefRSAConst(SSLV23_PADDING);
^
ossl_pkey_rsa.c:877:58: note: expanded from macro 'DefRSAConst'
#define DefRSAConst(x) rb_define_const(cRSA, #x, INT2NUM(RSA_##x))
^
<scratch space>:144:1: note: expanded from here
RSA_SSLV23_PADDING
^
107 warnings and 1 error generated.
make[2]: *** [ossl_pkey_rsa.o] Error 1
make[1]: *** [ext/openssl/all] Error 2
make: *** [build-ext] Error 2
!!! Compiling ruby 2.7.4 failed!
此外,仅供参考:
❯ openssl version
LibreSSL 2.8.3
ruby-install
负责为您安装 OpenSSL 依赖项,但是 ruby-install
中存在错误,它没有指定需要安装的确切 openssl
版本.值得庆幸的是,这已得到修复:
- 将
ruby-install
升级到 >=0.8.3(例如,brew upgrade ruby-install
),这会将 ruby 的 openssl 依赖项固定在 1.1 - 安装 ruby 3(例如,
ruby-install ruby 3.0.2
)
详情:
这已在 ruby-install
中解决(首次报告为 https://github.com/postmodern/ruby-install/issues/409)。 Homebrew 默认 openssl
为 3.0(最新的主要版本),但 Ruby 尚未添加对 OpenSSL3.0 的支持。因此 openssl
依赖项 ruby-install
试图使用错误的版本(Ruby 仍在 1.1)。
仅供将来参考,如果有人遇到与 rvm
类似的问题,只需使用 brew 卸载 openssl@3
并安装 openssl@1.1