Error when trying to install app with mysql2 gem

筅森魡賤 提交于 2019-11-27 17:57:10

The error log says:

ld: library not found for -lssl

So, you need to install libssl:

brew install openssl

Hope it helps.

For anybody still experiencing the issue:

When you install openssl via brew, you should get the following message:

Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries

Generally there are no consequences of this for you. If you build your own software and it requires this formula, you'll need to add to your build variables:

LDFLAGS: -L/usr/local/opt/openssl/lib
CPPFLAGS: -I/usr/local/opt/openssl/include
PKG_CONFIG_PATH: /usr/local/opt/openssl/lib/pkgconfig

You can set these build flags (for the local application) by running the following:

bundle config --local build.mysql2 "--with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include"

This worked for me.

See bundler's documentation for more information.

The solution for me was to install the Xcode Command Line Tools.

I had recently updated Xcode through the Mac App Store, and every time I do that, I've found that I have to reinstall the Command Line Tools again.

xcode-select --install
stereodenis

Try this:

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

(Update version as appropriate)

zenvelope

Thanks @mudasobwa for pointing me in the right direction. It turns out the error was caused by an unlinked openssl file, so running:

brew reinstall openssl && brew link openssl --force 

Solved the problem. I found the solution here: OpenSSL, RVM, Brew, conflicting error

Based on the solution here

brew install openssl

export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opt/openssl/lib/

solved the problem.

k1r8r0wn
sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /

From here: https://gorails.com/setup/osx/10.14-mojave

I found that I had to use --with-opt-dir=/usr/local/opt.

Specifically, I added the following to my ~/.bundle/config file:

BUNDLE_BUILD__MYSQL2: "--with-opt-dir=/usr/local/opt"
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!