【问题标题】:FFI::NotFoundError (Function 'OPENSSL_init_ssl' not found in [libssl.dylib])FFI::NotFoundError(在 [libssl.dylib] 中找不到函数“OPENSSL_init_ssl”)
【发布时间】:2021-06-26 02:52:44
【问题描述】:
我正在使用 Mac OS 进行开发。现在我正在使用 Blockcypher API 开发一个应用程序。使用 Ruby on Rails,当我尝试使用 Gem 汇款时,它总是返回此错误
FFI::NotFoundError(在 [libssl.dylib] 中找不到函数“OPENSSL_init_ssl”)
已经尝试在我的 mac 上升级或降级 OpenSSL 版本,但什么也没发生,这太令人沮丧了。我在 linux 上的朋友没有收到此错误,可以在他的设备上完美运行。有人遇到过这个错误吗?
【问题讨论】:
标签:
ruby-on-rails
ruby
macos
openssl
blockcypher
【解决方案1】:
我也遇到了同样的问题,研究了一天找到了rvm ruby-2.7.2版本的解决方法:
- 安装 openssl 1.1 版:
brew update & brew upgrade & brew install openssl@1.1
- cd 在您的 openssl lib 文件夹中,以我为例:
/usr/local/opt/openssl@1.1/lib
复制文件到/usr/lib
cd /usr/local/opt/openssl@1.1/lib
- 复制
libssl.1.1.dylib 文件
sudo cp libssl.1.1.dylib libcrypto.1.1.dylib /usr/local/lib/
- 制作软链接
sudo ln -s libssl.1.1.dylib libssl.dylib
sudo ln -s libcrypto.1.1.dylib libcrypto.dylib
- 用 openssl 版本重新安装 ruby:
rvm reinstall 2.7.2 --with-openssl-dir=/usr/local/opt/openssl@1.1
参考github issues、stackoverflow。