mysql2:库未加载:自制更新后的/usr/local/opt/openssl/lib/libssl.1.0.0.dylib

时间:2019-12-13 17:13:34

标签: openssl mysql2

我的Rails应用中有mysql2@0.4.4

在我的Mac OS Mojave v10.14.2上brew更新库之后,启动Rails控制台时我开始看到以下错误:

/Users/hirurg103/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require': dlopen(/Users/hirurg103/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/mysql2-0.4.4/lib/mysql2/mysql2.bundle, 9): Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib (LoadError)
  Referenced from: /usr/local/opt/mysql@5.6/lib/libmysqlclient.18.dylib
  Reason: image not found - /Users/hirurg103/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/mysql2-0.4.4/lib/mysql2/mysql2.bundle

我尝试卸载mysql2 gem并使用cpp和ld标志进行安装:

gem uninstall mysql2
gem install mysql2 -v 0.4.4 -- --with-cppflags=-I/usr/local/opt/openssl/include/openssl --with-ldflags=-L/usr/local/opt/openssl/lib

但这没有帮助。

我还尝试将mysql2升级到最新版本(在撰写本文时,v0.5.3),但是它也不起作用

ls -l /usr/local/opt/openssl/lib给我:

total 14472
drwxr-xr-x  4 hirurg103  staff      128 Sep 10 16:13 engines-1.1
-r--r--r--  1 hirurg103  staff  2265596 Dec 13 19:06 libcrypto.1.1.dylib
-r--r--r--  1 hirurg103  staff  3930864 Sep 10 16:13 libcrypto.a
lrwxr-xr-x  1 hirurg103  staff       19 Sep 10 16:13 libcrypto.dylib -> libcrypto.1.1.dylib
-r--r--r--  1 hirurg103  staff   485860 Dec 13 19:06 libssl.1.1.dylib
-r--r--r--  1 hirurg103  staff   720400 Sep 10 16:13 libssl.a
lrwxr-xr-x  1 hirurg103  staff       16 Sep 10 16:13 libssl.dylib -> libssl.1.1.dylib
drwxr-xr-x  5 hirurg103  staff      160 Dec 13 19:06 pkgconfig

我没有看到libssl.1.0.0.dylibmysql2抱怨

您之前遇到过此错误吗? 您能够修复它,如何修复?

5 个答案:

答案 0 :(得分:7)

OpenSSL 1.0 reached EOL on 2019-12-31

使用指向mysql2的{​​{1}}和--with-cflags参数重新安装--with-ldflags gem可以修复错误:

openssl@1.1

答案 1 :(得分:1)

对于使用rbenv的任何人:

 brew uninstall openssl
 brew install rbenv/tap/openssl@1.0

 gem uninstall mysql2
 gem install mysql2 -- --with-opt-dir="$(brew --prefix rbenv/tap/openssl@1.0)"

答案 2 :(得分:0)

最终对我来说解决方案是:

brew update
brew upgrade

在尝试这些命令之前,我还尝试过brew reinstall openssl次。我还导出了LIBRARY_PATH:export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opt/openssl/lib/,并通过rbenv重新安装了ruby。

因此,如果brew更新和升级无法为您清除错误,请尝试重新安装openssl。然后,如果这不起作用,请重新安装ruby。

答案 3 :(得分:0)

我的解决方案与@ Hirurg103非常相似,除了--with-cflag对我不起作用:

gem install mysql2 -v 0.4.10 -- --with-ldflags=\"-L/usr/local/opt/openssl@1.1/lib\"

答案 4 :(得分:0)

我更新 brew 的简单解决方案对我有用

  brew update && brew upgrade

我还按照此说明安装了 MacPorts here