2017-01-21 3 views
2

J'essaie d'installer mysql2 gem à utiliser dans l'apprentissage des rails, mais cela ne fonctionne tout simplement pas. La réinstallation de mysql ou ruby ​​ne fonctionne pas. L'utilisation d'ARCHFLAGS ne fonctionne pas. Je ne peux pas utiliser apt-get libmysqlclient-dev parce que mon Mac n'a pas de serveur Ubuntu, et de toute façon ce ne serait pas une dépendance incluse dans mysql lorsqu'il est installé avec homebrew (comme je l'ai fait)? J'ai aussi le tout dernier Xcode (8.2.1). Tel est le message d'erreur complet (avec nom d'utilisateur à la place du nom d'utilisateur réel):gem installer mysql2 ne fonctionne pas

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 

Les commandes que j'ai essayé d'installer mysql2 étaient:

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' 

Je ne sais pas exactement ce que ces moyennes, comme je l'ai fait les suivant des conseils de messages similaires.

Aidez-nous s'il vous plaît. Merci!

+1

Pouvez-vous s'il vous plaît poster la commande que vous utilisez pour installer mysql2 et ajouter le message d'erreur complet? Comment avez-vous installé MySQL lui-même? – spickermann

Répondre

1

Vous devez modifier vos variables d'environnement pour inclure les éléments suivants (il suffit de remplacer le 0.0.00 avec la version souhaitée de gemme mysql2:

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

Je voudrais vérifier aussi votre $PATH et assurez-vous qu'il comprend gem mysql , mais la ligne ci-dessus devrait fonctionner (avait un problème très similaire)

+0

MERCI! travaillé après des heures de recherche et une douzaine d'autres tentatives de solutions. ay également apprendre ce que tout cela signifie: D. – Becarev