bundle install에서 mysql2gem은'ld:library not found for-limported_Openssl`에서 실패한 문제를 강제로 해결하다
3456 단어 MySQLbundleinstall바드의 비결Rails
개요
환경
갑작스런 처리 방법
수정
mysql_config
(후술)bundle config --delete build.mysql2
필요는 없지만 기분이 좋다(환경에 따라 필요할 수 있다)bundle install
/usr/local/Cellar/[email protected]/5.6.46/bin/mysql_config
123行目
- libs=" $ldflags -L$pkglibdir -lmysqlclient -limported_openssl -limported_crypto "
+ libs=" $ldflags -L$pkglibdir -lmysqlclient "
126行目
- libs_r=" $ldflags -L$pkglibdir -lmysqlclient -limported_openssl -limported_crypto "
+ libs_r=" $ldflags -L$pkglibdir -lmysqlclient "
여기서부터 자세히 설명해주세요.
bundle install
의 일지는 이런 느낌이다.Installing mysql2 0.3.20 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
(...略)
checking for ruby/thread.h... yes
checking for rb_thread_call_without_gvl() in ruby/thread.h... yes
checking for rb_thread_blocking_region()... no
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/opt/[email protected]/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/opt/[email protected]/lib
-----
creating Makefile
(...略)
ld: warning: directory not found for option '-L/usr/local/opt/[email protected]/lib'
ld: library not found for -limported_openssl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [mysql2.bundle] Error 1
make failed, exit code 2
두 가지 문제가 있어요.
1. 근절할 MySQL5.7 문제
ld: warning: directory not found for option '-L/usr/local/opt/[email protected]/lib'
갑자기 등장했어.다음 5.7 메시지를 썼기 때문입니다.~/.rbenv/versions/2.4.2/lib/pkgconfig/ruby-2.4.pc
50行目
DLDFLAGS=-L/Users/choripon/.rbenv/versions/2.4.2/lib -L/usr/local/opt/[email protected]/lib -Wl,-undefined,dynamic_lookup -Wl,-multiply_defined,suppress
루비를 설치할 때의 매개 변수가 영향을 미쳤을 수도 있지만, 지금은 수수께끼입니다.루비 재가입으로 해결했습니다.2. 자신이 누구인지의 문제
ld: library not found for -limported_openssl
상당히 수수께끼이기 때문에 최종 수단grep -ir 'imported_openssl' / 2>/dev/null
의 발동이 인정되었습니다. 안전하게 때린 mysql_config 수정으로 해결했습니다.Using mysql_config at /usr/local/opt/[email protected]/bin/mysql_config
의 로그 출력은 비밀이라는 것을 오랫동안 알아차렸다)여기서 마치겠습니다.
끝내다
이번에 장난친 mysql_config가 잠시 후 복구되었습니다.
그리고 전혀 상관없어요, mkmf.log는 마음속에서'부은 복어'라고 불린다.
Reference
이 문제에 관하여(bundle install에서 mysql2gem은'ld:library not found for-limported_Openssl`에서 실패한 문제를 강제로 해결하다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/choripon/items/b59e568b614e7e67d1af텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)