[mysql] mysql2 gem으로 앱을 설치하려고 할 때 오류 발생

mysql2gem 을 사용하는 오픈 소스 레일 3.2.21 애플리케이션을 설치하려고 하지만 명령을 실행하려고 bundle하면 다음 오류가 발생합니다.

Fetching: mysql2-0.3.18.gem (100%)
Building native extensions.  This could take a while...
p
ERROR:  Error installing mysql2:
    ERROR: Failed to build gem native extension.

    /Users/my_username/.rvm/rubies/ruby-2.1.2/bin/ruby -r ./siteconf20150614-72129-orqsb7.rb extconf.rb
checking for ruby/thread.h... yes
checking for rb_thread_call_without_gvl() in ruby/thread.h... yes
checking for rb_thread_blocking_region()... yes
checking for rb_wait_for_single_fd()... yes
checking for rb_hash_dup()... yes
checking for rb_intern3()... yes
-----
Using mysql_config at /usr/local/bin/mysql_config
-----
checking for mysql.h... yes
checking for errmsg.h... yes
checking for mysqld_error.h... yes
-----
Don't know how to set rpath on your system, if MySQL libraries are not in path mysql2 may not load
-----
-----
Setting libpath to /usr/local/Cellar/mysql/5.6.25/lib
-----
creating Makefile

make "DESTDIR=" clean

make "DESTDIR="
compiling client.c
compiling infile.c
compiling mysql2_ext.c
compiling result.c
linking shared-object mysql2/mysql2.bundle
ld: warning: directory not found for option '-L/Users/travis/.sm/pkg/active/lib'
ld: library not found for -lssl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [mysql2.bundle] Error 1

make failed, exit code 2

Gem files will remain installed in /Users/my_username/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/mysql2-0.3.18 for inspection.
Results logged to /Users/my_username/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/extensions/x86

mysqlhomebrew를 통해 설치 한 모든 버전을 제거 하고 다음과 같이 다시 설치해 보았습니다 .

brew uninstall --force mysql && brew install mysql

그런 다음 실행 :

sudo gem install mysql2

여기에서 여러 유사한 질문에서 제안한 것처럼 여전히 위와 동일한 오류가 발생합니다.

누군가 이것을 시작하고 실행하는 방법에 대한 지침을 제공 할 수 있습니까?



답변

오류 로그에 다음과 같이 표시됩니다.

ld: library not found for -lssl

따라서 다음을 설치해야합니다 libssl.

brew install openssl

주석에서 지적했듯이 경로를 라이브러리로 내 보내야 할 수도 있습니다.

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


답변

여전히 문제가 발생하는 경우 :

brew를 통해 openssl을 설치하면 다음 메시지가 표시됩니다.

Apple은 자체 TLS 및 암호화 라이브러리를 위해 OpenSSL 사용을 중단했습니다.

일반적으로 이에 대한 결과는 없습니다. 자체 소프트웨어를 빌드하고이 공식이 필요한 경우 빌드 변수에 추가해야합니다.

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

다음을 실행하여 이러한 빌드 플래그 (로컬 애플리케이션 용)를 설정할 수 있습니다.

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

이것은 나를 위해 일했습니다.

자세한 내용은 번 들러 문서 를 참조하십시오.


답변

나를위한 해결책은 Xcode 명령 줄 도구를 설치하는 것이 었습니다.

최근에 Mac App Store를 통해 Xcode를 업데이트했는데 그렇게 할 때마다 명령 줄 도구를 다시 설치해야한다는 사실을 알게되었습니다.

xcode-select --install


답변

이 시도:

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

(적절한 버전 업데이트)


답변

여기 솔루션을 기반으로

brew install openssl

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

문제를 해결했습니다.


답변

저를 올바른 방향으로 안내 해준 @mudasobwa에게 감사드립니다. 링크되지 않은 openssl 파일로 인해 오류가 발생한 것으로 나타 났으므로 다음을 실행하십시오.

brew reinstall openssl && brew link openssl --force 

문제를 해결했습니다. 여기에서 해결책을 찾았습니다 : OpenSSL, RVM, Brew, 충돌 오류


답변

명령의 조합으로 해결되었습니다. 저는 모하비에 있습니다.

brew reinstall openssl && brew link openssl --force

그리고

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