2017-01-21 3 views
2

Ich versuche mysql2 gem zu installieren, um in Rails zu lernen, aber es funktioniert einfach nicht. Das erneute Installieren von mysql oder ruby ​​funktioniert nicht. Die Verwendung von ARCHFLAGS funktioniert nicht. Ich kann apt-get libmysqlclient-dev nicht verwenden, weil mein Mac keinen Ubuntu-Server hat, und wäre dies nicht eine Abhängigkeit, die in mysql enthalten wäre, wenn ich mit Homebrew (wie ich es getan habe) installiert habe? Außerdem habe ich den neuesten Xcode (8.2.1). Dies ist die komplette Fehlermeldung (mit Benutzernamen anstelle von tatsächlichen Benutzernamen):gem install mysql2 funktioniert nicht

Building native extensions. This could take a while... 
ERROR: Error installing mysql2: 
    ERROR: Failed to build gem native extension. 

    current directory: /Users/username/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/mysql2-0.4.5/ext/mysql2 
/Users/username/.rbenv/versions/2.3.1/bin/ruby -r ./siteconf20170121-4906-1lcyftl.rb extconf.rb 
checking for rb_absint_size()... yes 
checking for rb_absint_singlebit_p()... yes 
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 
checking for rb_big_cmp()... yes 
----- 
Using mysql_config at /usr/local/bin/mysql_config 
----- 
checking for mysql.h... yes 
checking for SSL_MODE_DISABLED in mysql.h... yes 
checking for SSL_MODE_PREFERRED in mysql.h... yes 
checking for SSL_MODE_REQUIRED in mysql.h... yes 
checking for SSL_MODE_VERIFY_CA in mysql.h... yes 
checking for SSL_MODE_VERIFY_IDENTITY in 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.7.17/lib 
----- 
creating Makefile 

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

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

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

current directory: /Users/username/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/mysql2-0.4.5/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/username/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/mysql2-0.4.5 for inspection. 
Results logged to /Users/username/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/extensions/x86_64-darwin-16/2.3.0-static/mysql2-0.4.5/gem_make.out 

Die Befehle, die ich versuchte, mysql2 zu installieren waren:

gem install mysql2 
sudo gem install mysql2 (if the error was permission denied.) 
sudo gem install mysql2 -v '0.4.5' -- --with-mysql-config=/usr/local/Cellar/mysql/5.7.17/bin/mysql_config 
ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future sudo gem install mysql2 -v '0.4.5' 

nicht sicher, was genau diejenigen bedeuten, wie ich es tat Sie folgen den Ratschlägen aus ähnlichen Beiträgen.

Bitte helfen. Vielen Dank!

+1

Können Sie bitte den Befehl posten, den Sie verwenden, um 'mysql2' zu installieren und die vollständige Fehlermeldung hinzuzufügen? Wie haben Sie MySQL selbst installiert? – spickermann

Antwort

1

Sie benötigen eine Umgebungsvariablen ändern, die folgenden (nur ersetzen Sie den 0.0.00 mit der gewünschten Version von mysql2 gem enthalten:

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

würde ich auch Ihre $PATH überprüfen und sicherstellen, dass es umfasst mysql gem , aber die obige Zeile sollte funktionieren (hatte ein sehr ähnliches Problem)

+0

DANKE! This arbeitete nach Stunden der Forschung und Dutzende andere Lösungsansätze.Heute, ich hoffe, ein d um auch zu lernen, was das alles bedeutet: D. – Becarev

Verwandte Themen