红宝石在轨道上警告"ruby is loading libcrypto in an unsafe way"



当我在终端上运行rails命令时,如创建模型,这是我得到的错误:

WARNING: /Users/my_mac_username/.rvm/rubies/ruby-2.5.3/bin/ruby is loading libcrypto in an unsafe way

[1] 5396 abort bin/rails g model ModelName attribute_1:string attribute_2:integer

我的mac正在运行大sur,

我最终使用来自此线程的信息解决了相同的问题:https://giters.com/se3000/ruby-eth/issues/47

对我来说,在一台M1 Mac电脑上,解决方案是使用以下代码:

sudo ln -s $(brew --prefix openssl)/lib/libcrypto.dylib /usr/local/lib/
sudo ln -s $(brew --prefix openssl)/lib/libssl.dylib  /usr/local/lib

这绝对是一个dylib问题,正如@tbraden指出的。

这只是一个警告,不是致命错误。在mac上,您可以打开Console程序(聚光灯搜索Console)并查找ruby崩溃日志。

对我来说,这是无效的dylib加载错误,这可以通过创建这个线程后面的符号链接https://developer.apple.com/forums/thread/119429来解决。

如果你有最新版本的libssl

但是,如果您有1.1版本,则需要运行以下命令

sudo ln -s $(brew --prefix openssl@1.1)/lib/libcrypto.dylib /usr/local/lib/
sudo ln -s $(brew --prefix openssl@1.1)/lib/libssl.dylib  /usr/local/lib

另外,在运行任何命令之前,您可以在当前时刻验证它指向哪个版本

ls -la /usr/local/lib/libcrypto.dylib
lrwxr-xr-x  1 root  admin  46 Mar  3 14:27 /usr/local/lib/libcrypto.dylib -> /usr/local/opt/openssl@1.1/lib/libcrypto.dylib
ls -la /usr/local/lib/libssl.dylib
lrwxr-xr-x  1 root  admin  43 Mar  3 14:27 /usr/local/lib/libssl.dylib -> /usr/local/opt/openssl@1.1/lib/libssl.dylib

我在Ruby 2.7.5/Rails 6.0应用程序上工作了一段时间后遇到了这个错误。我能够通过如上所述的libcrypto和libssl文件的符号链接来修复它。

然而,我最近又开始遇到这个问题。我发现这是一个老版本的ethgem的问题,这是magic-authgem在我的应用程序中的依赖。详细信息在这个Github问题。

为了解决这个问题,我将gem升级到0.14版本(或本文发布时的最新版本)。到目前为止,问题似乎已经解决了。

对于带有Intel芯片的Macbook,解决方案是更新eth gem。

最新更新