sierra rails mac installing failed extension error mysql ruby-on-rails ruby macos gem

mysql - rails - ruby mac os sierra



falta mysql.h...(Ruby on Rails, OSX) (3)

Probé varias ideas ... ninguna funcionó ... solo intento instalar mysql2 como una joya. Mi mysql está funcionando, pero cada vez que mi sistema dice, ese mysql.h falta ... ¿Alguien tiene una idea? Es muy frustrante ahora ...

Estoy usando osx 10.8.3, ruby ​​1.9.3, rails 3.2.13 y home-brew.

gem install mysql2 -v ''0.3.11'' Building native extensions. This could take a while... ERROR: Error installing mysql2: ERROR: Failed to build gem native extension. /Users/gadreel/.rvm/rubies/ruby-1.9.3-p429/bin/ruby extconf.rb checking for rb_thread_blocking_region()... yes checking for rb_wait_for_single_fd()... yes checking for mysql.h... no checking for mysql/mysql.h... no ----- mysql.h is missing. please check your installation of mysql and try again. ----- *** 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/gadreel/.rvm/rubies/ruby-1.9.3-p429/bin/ruby --with-mysql-config --without-mysql-config file `which mysql` /usr/local/mysql/bin/mysql: Mach-O 64-bit executable x86_64


Usar un administrador de paquetes como Homebrew o MacPorts hace que sea bastante directo arreglar esto. La distribución binaria de MySQL directa desde Oracle y la que se incluye con OS X no tiene los encabezados de desarrollo, de los cuales mysql.h es uno de ellos.

Homebrew lo arreglaría así:

brew install mysql

MacPorts es muy similar:

sudo port install mysql

Ambas instalan bibliotecas, un cliente de línea de comandos y los encabezados de desarrollo asociados para las bibliotecas. Habilitar el servidor es opcional.

Como alternativa, puede obtener la fuente directamente de Apple e instalarla de la manera que mejor le parezca.

En general, Homebrew es la mejor manera de hacerlo.


La instalación de una gema a veces implica la compilación de la fuente. En este caso, la gema MySQL necesita crear la interfaz Ruby mediante la compilación del código C; lo más probable es que necesite instalar los archivos de desarrollo MySQL.

(se perdió la referencia OSX anterior)


Lo que funcionó para mí en la instalación de Mountain Lion Rails (utilizando Homebrew y RVM) fue editar /usr/local/Cellar/mysql/5.XX.XX/bin/mysql_config y eliminar -Wno-null-conversion -Wno-unused-private-field de las opciones de cxflags y cxflags de la siguiente manera:

Antes de:

cflags="-I$pkgincludedir -Wall -Wno-null-conversion -Wno-unused-private-field -Os -g -fno-strict-aliasing -DDBUG_OFF " #note: end space! cxxflags="-I$pkgincludedir -Wall -Wno-null-conversion -Wno-unused-private-field -Os -g -fno-strict-aliasing -DDBUG_OFF " #note: end space!

Después:

cflags="-I$pkgincludedir -Wall -Os -g -fno-strict-aliasing -DDBUG_OFF " #note: end space! cxxflags="-I$pkgincludedir -Wall -Os -g -fno-strict-aliasing -DDBUG_OFF " #note: end space!

Después de esa instalación gema, mysql2 procedió sin problemas

Nota: esto probablemente se deba a un cambio introducido en mysql_config después de 5.6.10: http://bugs.mysql.com/bug.php?id=69645