当我在终端上运行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文件的符号链接来修复它。
然而,我最近又开始遇到这个问题。我发现这是一个老版本的eth
gem的问题,这是magic-auth
gem在我的应用程序中的依赖。详细信息在这个Github问题。
为了解决这个问题,我将gem升级到0.14版本(或本文发布时的最新版本)。到目前为止,问题似乎已经解决了。
对于带有Intel芯片的Macbook,解决方案是更新eth gem。