mysql2
gem 을 사용하는 오픈 소스 레일 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
mysql
homebrew를 통해 설치 한 모든 버전을 제거 하고 다음과 같이 다시 설치해 보았습니다 .
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