Ruby gem mysql2 install échouant

Quand j’essaye d’installer le gem mysql2, il échoue sans erreurs apparentes. Est-ce que quelqu’un sait ce qu’il faut faire pour contourner ce problème afin que mysql2 s’installe?

 Tanner-Smiths-MacBook-Pro: Humans_vs_Zombies_Parse tanner $ sudo gem installe les extensions natives mysql2Building.  Ça pourrait prendre un moment...
 ERREUR: Erreur lors de l'installation de mysql2:
     ERREUR: Impossible de construire l'extension native gem.

 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
 recherche de rb_thread_blocking_region () ... non
 vérification de mysql_query () dans -lmysqlclient ... non
 vérification de main () dans -lm ... oui
 vérification de mysql_query () dans -lmysqlclient ... non
 vérification de main () dans -lz ... oui
 vérification de mysql_query () dans -lmysqlclient ... non
 vérification de main () dans -lsocket ... non
 vérification de mysql_query () dans -lmysqlclient ... non
 recherche de main () dans -lnsl ... non
 vérification de mysql_query () dans -lmysqlclient ... non
 vérification de main () dans -lmygcc ... non
 vérification de mysql_query () dans -lmysqlclient ... non
 *** extconf.rb a échoué ***
 Impossible de créer Makefile pour une raison quelconque, probablement sans
 bibliothèques et / ou en-têtes nécessaires.  Vérifiez le fichier mkmf.log pour plus d'informations
 détails.  Vous pouvez avoir besoin d'options de configuration.

 Options de configuration fournies:
     --with-opt-dir
     --sans-opt-dir
     --avec-opt-include
     --avec-opt-include = $ {opt-dir} / include
     --with-opt-lib
     --avec-opt-lib = $ {opt-dir} / lib
     --with-make-prog
     --avec-sans-prog
     --srcdir =.
     --curdir
     --ruby = / System / Library / Frameworks / Ruby.framework / Versions / 1.8 / usr / bin / ruby
     --with-mysql-config
     --avec-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
     --avec-mysqlclientlib
     --avec-mlib
     - sans-mlib
     --with-mysqlclientlib
     --avec-mysqlclientlib
     --avec-zlib
     --avec-zlib
     --with-mysqlclientlib
     --avec-mysqlclientlib
     --avec-socketlib
     - sans-socketlib
     --with-mysqlclientlib
     --avec-mysqlclientlib
     --avec-nsllib
     --avec-nsllib
     --with-mysqlclientlib
     --avec-mysqlclientlib
     --avec-mygcclib
     --avec-mygcclib
     --with-mysqlclientlib
     --avec-mysqlclientlib


 Les fichiers Gem restront installés dans /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6 pour inspection.
 Résultats consignés dans /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/ext/mysql2/gem_make.out

Vous devez avoir MySQL 64 bits installé sur votre ordinateur, ainsi que les outils de construction que vous obtenez lorsque vous installez xcode.

Ubuntu:

 sudo apt-get install libmysqlclient-dev #(mysql development headers) sudo gem install mysql2 -- --with-mysql-dir=/etc/mysql/ 

C’est tout!

Résultat:

 Building native extensions. This could take a while... Successfully installed mysql2-0.2.6 1 gem installed Installing ri documentation for mysql2-0.2.6... Enclosing class/module 'mMysql2' for class Result not known Enclosing class/module 'mMysql2' for class Client not known Installing RDoc documentation for mysql2-0.2.6... Enclosing class/module 'mMysql2' for class Result not known Enclosing class/module 'mMysql2' for class Client not known 

Vous avez besoin des en-têtes de développement MySQL pour que mysql2 comstack correctement. Cela est nécessaire, car la plupart des fonctionnalités sont écrites en C et ensuite liées à MySQL.

Une solution consiste à pointer explicitement le programme d’installation de gem sur votre dossier d’installation mysql

 gem install mysql2 -- --with-mysql-dir=/usr/local/mysql # or where ever you installed your mysql server to 

ou en installant un serveur mysql à un emplacement connu (par exemple en utilisant un homebrew .) et en installant ensuite la gem

 # install the mysql server locally brew install mysql # install the gem gem install mysql2 

Les deux approches nécessitent que XCode soit installé pour avoir le compilateur GCC requirejs.

Avec Brew et MySQL installés, j’ai utilisé ce qui suit pour installer la gem mysql2

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

Si vous utilisez Bundler, vous pouvez en informer Bundler avec la commande suivante:

 bundle config build.mysql2 --with-mysql-config=/usr/local//Cellar/mysql/5.5.10/bin/mysql_config 

Comme documenté ici: http://gembundler.com/man/bundle-config.1.html

Ubuntu 15.04:

 sudo apt-get install libmysqlclient-dev sudo gem install mysql2 

Ubuntu-16.04:

 sudo apt-get install ruby-mysql2 sudo gem install mysql2 

Sortie:

 Building native extensions. This could take a while... Successfully installed mysql2-0.3.19 Parsing documentation for mysql2-0.3.19 Installing ri documentation for mysql2-0.3.19 Done installing documentation for mysql2 after 0 seconds 1 gem installed 

sur Mac OSX Moutain Lion, la commande ci-dessous a fonctionné pour moi:

 gem install mysql2 -- --srcdir=/usr/local/mysql/include 

Vous pourriez vouloir vérifier cette discussion sur le site Web de MySQL: http://forums.mysql.com/read.php?116,178217,178217 , en particulier la réponse de Scott Derrick: http://forums.mysql.com/ read.php? 116,178217,189357 # msg-189357

Pour être plus précis, essayez d’utiliser

 sudo gem install mysql2 -- --with-mysql-dir=/usr/local/mysql 

J’espère que cela pourra aider.

J’ai fouillé pendant 2 jours sur Internet et sur Stack Overflow, et ce n’est que lorsque j’ai trouvé ce lien et commencé à travailler sur ce ticket pour mysql2 que j’ai résolu le problème.

Avec ma configuration (comme expliqué dans le ticket), les commutateurs de compilateur de -Wno-null-conversion -Wno-needed-private-field se briseraient et me donneraient une erreur qui n’était pas exactement correcte, à savoir:

 mysql.h is missing. please check your installation of mysql and try again 

Je suppose que si vous tapez rvm use ruby-2.1.0@rails4.0 --create dans votre répertoire puis bundle install .

J’ai résolu ce problème en indiquant précisément où se trouvent les répertoires, pas besoin de réinstaller quoi que ce soit , avec des macros ou des macports, en spécifiant simplement où sont les choses (une seule chose: le ruby ​​de mon mac était installé avec rvm, je suis ne pas utiliser celui par défaut fourni avec os x):

append à votre gem install mysql2 les drapeaux ci-dessous

  • --srcdir="..." – les inclus
  • --with-mysql-dir="..." – le répertoire mysql
  • --with-mysql-config="..." – le fichier mysql_config

comme cette gem install mysql2 --srcdir=/usr/local/mysql/include/ --with-mysql-dir=/usr/local/mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config

Dans Centos 6.x (7 devrait fonctionner) avec SCL (collection de logiciels) rh-mysql:

 scl enable rh-mysql56 bash gem install mysql2 -v '0.4.5' -- --with-mysql-include=/opt/rh/rh-mysql56/root/usr/include --with-mysql-lib=/opt/rh/rh-mysql56/root/usr/lib64