2016-09-21 21 views
34

installieren Ich richte meine Entwicklungsumgebung in der neuen macOS Sierra .Kann nicht mysql2 gem auf MacOS Sierra

Zu allererst habe ich installiert Rbenv, Rubin (2.3.1), Homebrew und so die neueste Version von MySQL (5.7.15).

$ brew install mysql 
$ mysql.server start 

Ok, MySQL wurde initialisiert. Zeit für die Installation der mysql2 gem ...

$ gem install mysql2 -- --with-mysql-config=/usr/local/Cellar/mysql/5.7.15/bin/mysql_config 

Aber es hat nicht funktioniert.


Building native extensions with: '--with-mysql-config=/usr/local/Cellar/mysql/5.7.15/bin/mysql_config' 
This could take a while... 
ERROR: Error installing mysql2: 
    ERROR: Failed to build gem native extension. 

    current directory: /Users/macuser/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/mysql2-0.4.4/ext/mysql2 
/Users/macuser/.rbenv/versions/2.3.1/bin/ruby -r ./siteconf20160921-16853-x1boio.rb extconf.rb --with-mysql-config=/usr/local/Cellar/mysql/5.7.15/bin/mysql_config 
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/Cellar/mysql/5.7.15/bin/mysql_config 
----- 
checking for mysql.h... yes 
checking for errmsg.h... yes 
checking for mysqld_error.h... yes 
----- 
Dont 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.7.15/lib 
----- 
creating Makefile 

To see why this extension failed to compile, please check the mkmf.log which can be found here: 

    /Users/macuser/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/extensions/x86_64-darwin-16/2.3.0-static/mysql2-0.4.4/mkmf.log 

current directory: /Users/macuser/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/mysql2-0.4.4/ext/mysql2 
make "DESTDIR=" clean 

current directory: /Users/macuser/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/mysql2-0.4.4/ext/mysql2 
make "DESTDIR=" 
compiling client.c 
compiling infile.c 
compiling mysql2_ext.c 
compiling result.c 
compiling statement.c 
linking shared-object mysql2/mysql2.bundle 
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/macuser/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/mysql2-0.4.4 for inspection. 
Results logged to /Users/macuser/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/extensions/x86_64-darwin-16/2.3.0-static/mysql2-0.4.4/gem_make.out 
+0

Ich frage mich, ob das Ihre Frage beantwortet: https://stackoverflow.com/questions/30834421/error-when-trying-to-install-app-with-mysql2-gem – spickermann

+0

Danke, @spickermann. Aber es hilft mir nicht, gleiche Ergebnisse nach 'brew install openssl'. –

+2

Haben Sie auch versuchen 'brew neu zu installieren openssl && brew link openssl --force' – spickermann

Antwort

30

Wenn Sie OpenSSL über Gebräu installieren, sollten Sie die folgende Meldung erhalten:

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

Sie können festlegen, diese bauen Flags (für die lokale Anwendung), indem Sie das folgende:

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

Das funktionierte für mich.

Weitere Informationen finden Sie unter bundler's documentation.

+0

Das hat bei mir funktioniert. Es warf mich "nil build" warnung. Ich habe versucht, Paket installieren in der nächsten Zeile, es hat für mich funktioniert. Danke, Mann. –

+0

Yeah funktioniert, danke, dass du mich vor stundenlangem Kopfschütteln gerettet hast – dft

96

Ich hatte gerade das gleiche Problem, versuchte alle oben aufgeführten Lösungen, begann dann für ein paar Stunden meinen Kopf gegen die Tastatur zu schlagen.

ich dann dachte, um zu versuchen und zu installieren/installieren Sie die Xcode Befehlszeilen-Tools:

xcode-select --install 

Sobald ich, dass die mysql2 gem w/ohne Probleme installiert haben. Ich hoffe, das macht den Trick!

+1

auch gelöstes Problem mit der Installation von Nokogiri –

+1

Ich habe das gleiche Problem nach dem Update auf MacOS Sierra 10.12.1 gefunden. Danke! –

+0

perfekt ...... + 1 – abhijit

-2

Zuerst sollten Sie versuchen 2 Antwort in here Wenn Sie openssl installiert haben, aber es immer noch nicht funktioniert. Sie sollten versuchen, die Referenz zu aktualisieren. A hat das gleiche Problem und es hat für mich funktioniert.

gem source -r https://rubygems.org/

gem source -a https://rubygems.org/

7

Ich bin hier, meine Verlegenheit zu teilen, da die anderen Antworten haben nicht funktioniert.

Für meine Umgebung brauche ich MySQL 5.6, so hatte ich zu verwenden:

brew install mysql56 statt brew install mysql

Bundle die mysql2 Juwel Installation gehalten versagt, bis:

brew link mysql56

Ich lief auch danach:

mysql.server start

Der letzte Schritt ist möglicherweise unnötig, aber nur für den Fall.

+0

Das gleiche arbeitete mit Percona, obwohl ich es zwingen musste: 'brauen link --force percona-server56' –

1

Versuchen Sie, Xcode-select --install

1

Also habe ich in diesem ähnliches Problem lief und für mich ist es stellte sich heraus, eine falsche Ruby-Version und nicht kompatibel MySQL-Version zu sein. Ich verwende Ruby 2.3 bei den meisten meiner Projekte, erbte aber ein 2.1-Projekt. Der Wechsel zu rvm, um 2.1 zu benutzen, hat mich ein bisschen weiter gebracht.

Dann fand ich diese: https://github.com/brianmario/mysql2/issues/603 dass die Sie mysql2 gem Version größer als 0.3.17 mit MySQL Version 5.7

aktualisiert Juwel 0.3.17 und feuerte bis verwenden haben. Hoffe, das hilft jemandem.

1

Fast das selbe Szenario wie @Caio Tarifa, Ruby 2.3.3, mysql 5.6 und mysql2. Ich habe ein paar Lösungen oben versucht und schließlich mit @ kylekeeslings Ansatz funktioniert.

Zuerst versuchte Lösung 1 durch @spickermann:

brew reinstall openssl && brew link openssl --force 

Es ist nichts passiert, denselben Fehler gezeigt.

Zweitens versuchte Lösung von @Alessandro Berardi:

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

Das hat unterschiedliche, aber mehr Fehler, da es gem Erweiterung config so alle gem Erweiterung Installation fehlgeschlagen überschrieben. Schließlich

, anprobiert @kylekeesling Lösung:

xcode-select --install 

Es mysql gem Ausgabe sowie nikogiri beheben. Da ich Xcode bereits integriert habe, wird in meinem Fall die Xcode Command Line Tools neu installiert.

+0

Führte auch den Befehl ** xcode-select --install ** als auch und das hat für mich funktioniert. –

Verwandte Themen