복붙노트

[RUBY-ON-RAILS] 오류 mysql2 보석으로 응용 프로그램을 설치하려고 할 때

RUBY-ON-RAILS

오류 mysql2 보석으로 응용 프로그램을 설치하려고 할 때

오픈 소스를 설치하려고 임은 mysql2 보석을 사용 3.2.21 응용 프로그램을 레일,하지만 난 시도하고 번들 commant을 실행할 때 나는 다음과 같은 오류가 발생합니다 :

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

그래서 같이 그들을 사제를 통해 설치 MySQL의 I의 모든 버전을 제거하고 다시 설치 시도 :

brew uninstall --force mysql && brew install mysql

그런 다음 실행 :

sudo gem install mysql2

비슷한 질문들에 의해 제안으로 여기에 물었지만, 여전히 위와 같은 오류가 발생합니다.

누군가의 제공 지침은 어떻게하고 실행을 얻을 수주십시오?

해결법

  1. ==============================

    1.오류 로그는 말한다 :

    오류 로그는 말한다 :

    ld: library not found for -lssl
    

    그래서, 당신의 libssl을 설치해야합니다 :

    brew install openssl
    

    이 의견에서 지적 된 바와 같이, 라이브러리의 경로를 내보낼 필요가있을 수 있습니다.

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

    2.사람의 경우 여전히 문제가 발생 :

    사람의 경우 여전히 문제가 발생 :

    당신이 양조를 통해하려면 openssl을 설치하면 다음과 같은 메시지를 얻어야한다 :

    당신은 다음을 실행하여 (로컬 응용 프로그램)이 빌드 플래그를 설정할 수 있습니다 :

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

    이것은 나를 위해 일했다.

    자세한 내용의 들러 설명서를 참조하십시오.

  3. ==============================

    3.나를 위해이 솔루션은 엑스 코드 명령 행 도구를 설치하는 것이 었습니다.

    나를 위해이 솔루션은 엑스 코드 명령 행 도구를 설치하는 것이 었습니다.

    나는 최근에 맥 앱 스토어를 통해 엑스 코드를 업데이트했다, 나는 그렇게 할 때마다, 나는 다시 명령 행 도구를 다시 설치해야 할 것으로 나타났습니다.

    xcode-select --install
    
  4. ==============================

    4.이 시도:

    이 시도:

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

    (적절한 업데이트 버전)

  5. ==============================

    5.여기에 솔루션을 기반으로

    여기에 솔루션을 기반으로

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

    이 문제를 해결했다.

  6. ==============================

    6.올바른 방향으로 날 가리키는 주셔서 감사합니다 @mudasobwa. 오류가, 링크 해제하려면 openssl 파일에 의한 실행되도록 한에서 그것은집니다 :

    올바른 방향으로 날 가리키는 주셔서 감사합니다 @mudasobwa. 오류가, 링크 해제하려면 openssl 파일에 의한 실행되도록 한에서 그것은집니다 :

    brew reinstall openssl && brew link openssl --force 
    

    이 문제를 해결했다. 나는 여기에 해결책을 발견 : OpenSSL을, RVM, 브루, 충돌 오류

  7. ==============================

    7.

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

    여기에서: https://gorails.com/setup/osx/10.14-mojave

  8. ==============================

    8.명령의 조합은 그것에게 저를 해결했다. 나는 모하비에입니다.

    명령의 조합은 그것에게 저를 해결했다. 나는 모하비에입니다.

    양조하려면 openssl && 양조 링크하려면 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
    
  9. ==============================

    9.나는 --with-옵트 인 DIR = / usr / 지방 / 수신 거부를 사용하여주었습니다.

    나는 --with-옵트 인 DIR = / usr / 지방 / 수신 거부를 사용하여주었습니다.

    특히, 내 ~ / .bundle / config 파일에 다음을 추가 :

    BUNDLE_BUILD__MYSQL2: "--with-opt-dir=/usr/local/opt"
    
  10. from https://stackoverflow.com/questions/30834421/error-when-trying-to-install-app-with-mysql2-gem by cc-by-sa and MIT license