ERREUR: Échec de création d'gem extension native (mysql2 sur des rails 3.2.3)
Je suis en train d'installer le mysql2 gem avec des Rails 3.2.3 et il ne fonctionne pas:
★ bundle install
Fetching gem metadata from https://rubygems.org/.........
Using rake (0.9.2.2)
Using i18n (0.6.0)
Using multi_json (1.2.0)
Using activesupport (3.2.3)
Using builder (3.0.0)
Using activemodel (3.2.3)
Using erubis (2.7.0)
Using journey (1.0.3)
Using rack (1.4.1)
Using rack-cache (1.2)
Using rack-test (0.6.1)
Using hike (1.2.1)
Using tilt (1.3.3)
Using sprockets (2.1.2)
Using actionpack (3.2.3)
Using mime-types (1.18)
Using polyglot (0.3.3)
Using treetop (1.4.10)
Using mail (2.4.4)
Using actionmailer (3.2.3)
Using arel (3.0.2)
Using tzinfo (0.3.32)
Using activerecord (3.2.3)
Using activeresource (3.2.3)
Using bundler (1.1.3)
Using coffee-script-source (1.2.0)
Using execjs (1.3.0)
Using coffee-script (2.2.0)
Using rack-ssl (1.3.2)
Using json (1.6.6)
Using rdoc (3.12)
Using thor (0.14.6)
Using railties (3.2.3)
Using coffee-rails (3.2.2)
Using jquery-rails (2.0.2)
Installing mysql2 (0.3.11) with native extensions
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/Users/rarneson/.rvm/rubies/ruby-1.9.3-p125/bin/ruby extconf.rb
checking for rb_thread_blocking_region()... yes
checking for rb_wait_for_single_fd()... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lmygcc... no
checking for mysql_query() in -lmysqlclient... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.
Provided configuration options:
--with-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/Users/rarneson/.rvm/rubies/ruby-1.9.3-p125/bin/ruby
--with-mysql-config
--without-mysql-config
--with-mysql-dir
--without-mysql-dir
--with-mysql-include
--without-mysql-include=${mysql-dir}/include
--with-mysql-lib
--without-mysql-lib=${mysql-dir}/lib
--with-mysqlclientlib
--without-mysqlclientlib
--with-mlib
--without-mlib
--with-mysqlclientlib
--without-mysqlclientlib
--with-zlib
--without-zlib
--with-mysqlclientlib
--without-mysqlclientlib
--with-socketlib
--without-socketlib
--with-mysqlclientlib
--without-mysqlclientlib
--with-nsllib
--without-nsllib
--with-mysqlclientlib
--without-mysqlclientlib
--with-mygcclib
--without-mygcclib
--with-mysqlclientlib
--without-mysqlclientlib
Gem files will remain installed in /Users/rarneson/.rvm/gems/ruby-1.9.3-p125/gems/mysql2-0.3.11 for inspection.
Results logged to /Users/rarneson/.rvm/gems/ruby-1.9.3-p125/gems/mysql2-0.3.11/ext/mysql2/gem_make.out
An error occured while installing mysql2 (0.3.11), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.3.11'` succeeds before bundling.
Je suis bundle install et c'est à mon Gemfile:
gem 'mysql2', '~> 0.3.11'
Je suis actuellement a obtenu MySQL exécute par le biais de MAMP. Je ne suis pas sûr si c'est une mauvaise idée et je devrais courir à la vanille, MySQl, mais il semble que mon problème actuel est juste en train de le gem installé. J'ai vu pas mal de ces problèmes ici sur stackoverflow mais tous semblent un peu différents ou ont vraiment compliqué de trouver des solutions. Est-il quelque chose que je suis absent? Quelque chose de simple? Quelque chose de stupide? Je peux vous fournir des informations supplémentaires à partir du fichier si nécessaire. J'ai lu que certaines personnes l'utilisation de SQLite pour les dev et test MySQL en prod, mais qui sonne comme une jolie idée horrible.
- J'ai un mysql_config commande disponible, pas de doute sur le MySQL bibliothèques et en-têtes. J'ai ajouté MAMP/Library/bin mon .profil et qui semblait aider. Maintenant, il ne fonctionne pas car il ne peut pas trouver de mysql.h, que je suis en supposant font partie des bibliothèques/en-têtes?
Vous devez vous connecter pour publier un commentaire.
De https://github.com/brianmario/mysql2/issues/8
venez de copier ceci dans la console
et travaillé!!
J'ai utilisé Homebrew pour Mac pour installer mysql:
Ensuite, j'ai utilisé un joyau de commande pour installer le mysql2 gem:
C'est surtout à cause du manque de mysql en-têtes, Essayez d'installer mysql développeur (mysql-devel) paquets
Normalement, cette erreur vient quand 'libmysqlclient-dev' paquet est manquant
Je viens de tomber sur le même problème, l'utilisation d'OS X de la Sierra et de MAMP et les Rails 5. J'ai réussi à installer la gem via
Après, bundle install a très bien fonctionné.
J'ai fini d'installer une nouvelle copie de MySQL et de ne pas utiliser MAMP et qui a fait le tour. Aussi devait être assurez-vous d'installer la version 64 bits au lieu de 32 bits.
Vous pouvez suivre ce fil Erreurs d'Installation mysql2 gem via le Bundler qui explique la solution pour Centos et ce problème sera résolu, si vous ajustez les commandes w.r.t votre système d'exploitation et vous pouvez être en mesure d'installer correctement le mysql2 gem.
Juste ajouter MAMP mysql en CHEMIN, alors vous pouvez exécuter la commande bundle install normalement.
$ /Applications/MAMP/Library/bin/mysql --host=localhost -uroot -proot
source: http://blog-en.mamp.info/2009/08/using-mysql-command-line-with-mamp.html
Quand j'ai eu cette erreur, j'ai été en mesure de résoudre ce problème en exécutant: