2012-04-07 16 views
47

Estoy tratando de instalar la gema mysql2 con Rails 3.2.3 y está fallando:ERROR: No se pudo construir joya extensión nativa (mysql2 sobre raíles 3.2.3)

★ 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. 

estoy corriendo paquete de instalación y esto está en mi Gemfile:

gem 'mysql2', '~> 0.3.11' 

Actualmente tengo MySQL corriendo a través de MAMP. No estoy seguro de si esto es una mala idea y debería ejecutar un MySQL de vanilla, pero parece que mi problema actual es simplemente instalar la gema. He visto bastantes de estos problemas aquí en stackoverflow, pero todos parecen un poco diferentes o tienen soluciones realmente complicadas. ¿Se me escapa algo? Algo simple? ¿Algo estúpido? Puedo proporcionar información adicional del archivo si es necesario. He leído que algunas personas usan SQLite para desarrollo y prueba luego MySQL en prod, pero eso suena como una idea bastante horrible.

+0

Tengo un comando mysql_config disponible, no está seguro acerca de las bibliotecas y cabeceras de MySQL. Agregué MAMP/Library/bin a mi .profile y eso pareció ayudar. ¿Ahora está fallando porque no puede encontrar mysql.h, que asumo son parte de las bibliotecas/encabezados? –

Respuesta

1

acabé de instalar una nueva copia de MySQL y no usar MAMP y eso fue lo que hizo. También tenía que asegurarse de instalar la versión de 64 bits, no de 32 bits.

17

Esto se debe principalmente a la falta de cabeceras de mysql, intenta instalar desarrollador de MySQL (mysql-devel) Paquetes

Normalmente este error se produce cuando el paquete 'libmysqlclient-dev' falta

+0

¡Esto me funcionó! ¡Gracias! :) –

+1

Los enlaces están muertos. – Cyclonecode

40

utilicé Homebrew for Mac instalar MySQL:

brew install mysql 

Luego usé un comando joya para instalar la gema mysql2:

sudo gem install mysql2 
+0

hizo esto y corrigió mi mensaje de error que estaba recibiendo. –

2

Me acabo de encontrar con el mismo problema, usando OS X Sierra y MAMP y Rails 5. Instalé con éxito la gema a través de

gem install mysql2 -- --with-mysql-config=/Applications/MAMP/Library/bin/mysql_config 

Después de eso, la instalación del paquete funcionó bien.

0

Cuando llegué a este error, yo era capaz de solucionar esto ejecutando:

gem install devtools 
Cuestiones relacionadas