J'essaie d'installer la gem mysql2 avec Rails 3.2.3 et ça échoue:
★ 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.
J'exécute bundle install et cela se trouve dans mon Gemfile:
gem 'mysql2', '~> 0.3.11'
Actuellement, MySQL fonctionne sous MAMP. Je ne suis pas sûr que ce soit une mauvaise idée et je devrais utiliser un MySQL Vanilla, mais il semble que mon problème actuel consiste simplement à installer la gemme. J'ai rencontré pas mal de problèmes de ce type ici sur stackoverflow, mais ils semblent tous un peu différents ou ont des solutions très compliquées. Y a-t-il quelque chose qui me manque? Quelque chose de simple? Quelque chose de stupide? Je peux fournir des informations supplémentaires à partir du fichier de sortie si nécessaire. J'ai lu que certaines personnes utilisent SQLite pour dev et testent ensuite MySQL en prod, mais cela semble être une idée assez horrible.
J'ai fini par installer une nouvelle copie de MySQL sans utiliser MAMP et c'est ce qui a fait l'affaire. Il fallait également veiller à installer la version 64 bits et non 32 bits.
De https://github.com/brianmario/mysql2/issues/8
vient de copier ceci dans la console
Sudo apt-get install mysql-client libmysqlclient-dev
et a travaillé !!
J'ai utilisé Homebrew pour Mac pour installer mysql:
brew install mysql
Ensuite, j'ai utilisé une commande gem pour installer le gem mysql2:
Sudo gem install mysql2
Ceci est principalement dû au manque d’en-têtes mysql. Essayez d’installer les packages pour les développeurs mysql (mysql-devel).
Normalement, cette erreur survient lorsque le paquet 'libmysqlclient-dev' est manquant.
Je viens de rencontrer le même problème, en utilisant OS X Sierra et MAMP et Rails 5. J'ai installé avec succès la gemme via
gem install mysql2 -- --with-mysql-config=/Applications/MAMP/Library/bin/mysql_config
Après cela, l'installation en bundle a bien fonctionné.
Ajoutez simplement MAMP mysql à PATH, vous pourrez alors lancer l’installation en bundle comme à l’habitude.
$/Applications/MAMP/Bibliothèque/bin/mysql --Host = localhost -uroot -proot
source: http://blog-en.mamp.info/2009/08/using-mysql-command-line-with-mamp.html
Lorsque j'ai eu cette erreur, j'ai pu résoudre ce problème en exécutant:
gem install devtools
Vous pouvez suivre ce fil Erreurs lors de l’installation de mysql2 gem via le Bundler qui explique la solution pour Centos et ce problème sera corrigé si vous ajustez les commandes avec votre système d’exploitation et vous pourrez installer le gem mysql2.