ruby on rails 3 - portable - problema de instalación del paquete: mysql.h falta
ruby download for windows (12)
en mi Mac OSX 10.6 de 32 bits, puedo instalar la gema mysql2 con bastante facilidad, pero no en el servidor mini mac 10.6 de 64 bits.
He instalado MySQL 5.5.11 en un servidor problemático, mientras que en mi home mac MySQL 5.5.0.m2 de alguna manera cuando ejecuto bundle install, en el servidor intenta instalar mysql2.0.3.2 mientras está en la casa mysql2.0.2.6
Por favor no me digas que
env ARCHFLAGS = "- arch x86_64" sudo gem install mysql2 --version ''= 0.2.6'' - --with-mysql-config = / usr / local / mysql / bin / mysql_config
Intenté eso, no funciona.
Incluye / usr / local / mysql / bin en $ PATH no ayuda también.
Código de error:
Installing mysql2 (0.3.2) with native extensions /Users/administrator/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:533:in `rescue in block in build_extensions'': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)
/Users/administrator/.rvm/rubies/ruby-1.9.2-p180/bin/ruby extconf.rb
checking for rb_thread_blocking_region()... 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
--without-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/administrator/.rvm/rubies/ruby-1.9.2-p180/bin/ruby
--with-mysql-config
--without-mysql-config
Gem files will remain installed in /Users/administrator/.rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.3.2 for inspection.
Results logged to /Users/administrator/.rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.3.2/ext/mysql2/gem_make.out
from /Users/administrator/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:511:in `block in build_extensions''
from /Users/administrator/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:486:in `each''
from /Users/administrator/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:486:in `build_extensions''
from /Users/administrator/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:159:in `install''
from /Users/administrator/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.12/lib/bundler/source.rb:96:in `install''
from /Users/administrator/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.12/lib/bundler/installer.rb:55:in `block in run''
from /Users/administrator/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.12/lib/bundler/spec_set.rb:12:in `block in each''
from /Users/administrator/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.12/lib/bundler/spec_set.rb:12:in `each''
from /Users/administrator/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.12/lib/bundler/spec_set.rb:12:in `each''
from /Users/administrator/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.12/lib/bundler/installer.rb:44:in `run''
from /Users/administrator/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.12/lib/bundler/installer.rb:8:in `install''
from /Users/administrator/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.12/lib/bundler/cli.rb:225:in `install''
from /Users/administrator/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.12/lib/bundler/vendor/thor/task.rb:22:in `run''
from /Users/administrator/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.12/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task''
from /Users/administrator/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.12/lib/bundler/vendor/thor.rb:246:in `dispatch''
from /Users/administrator/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.12/lib/bundler/vendor/thor/base.rb:389:in `start''
from /Users/administrator/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.12/bin/bundle:13:in `<top (required)>''
from /Users/administrator/.rvm/gems/ruby-1.9.2-p180/bin/bundle:19:in `load''
from /Users/administrator/.rvm/gems/ruby-1.9.2-p180/bin/bundle:19:in `<main>''
Bien chicos para mí, la solución fue:
$ sudo brew install mysql
$ sudo env ARCHFLAGS="-arch i386" gem install mysql -- /
--with-mysql-dir=/usr/local/mysql --with-mysql-lib=/usr/local/mysql/lib /
--with-mysql-include=/usr/local/mysql/include
fuente: http://wonko.com/post/how-to-install-the-mysqlruby-gem-on-mac-os-x-leopard
O:
$sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- /
--with-mysql-dir=/usr/local/mysql --with-mysql-lib=/usr/local/mysql/lib /
--with-mysql-include=/usr/local/mysql/include
Si tu versión de mysql es de 64 bits
Después de eso tuve muchos problemas porque si quiero crear la base de datos:
$: bundle exec rake db:reset
estaba recibiendo este error:
dyld: lazy symbol binding failed: Symbol not found: _mysql_init
Referenced from: /Users/workdreamer/Sites/cavortify/implementation/cavortify/mysql/ruby/1.8/gems/mysql-2.8.1/lib/mysql_api.bundle
Expected in: flat namespace
dyld: Symbol not found: _mysql_init
Referenced from: /Users/workdreamer/Sites/cavortify/implementation/cavortify/mysql/ruby/1.8/gems/mysql-2.8.1/lib/mysql_api.bundle
Expected in: flat namespace
La solución es: en tu gemfile agrega: gem "ruby-mysql"
Ok, un día y medio para encontrar la solución.
¡Que tengas un buen día!
Este método es para Rails 3.1.0 (y con suerte para arriba) en la máquina de 64 bits. Utilicé en Ruby-1.9.2-p180.
Este blog lo respondió: http://www.tatvartha.com/2010/10/installing-mysql-gem-with-bundler-on-snow-leopard/
Básicamente, el método anterior: $ sudo env ARCHFLAGS = "- arch x86_64" gem install mysql - --with-mysql-config = / usr / local / mysql / bin / mysql_config
puede funcionar, pero sin bundler.
Para hacerlo con bundler, primero debe ejecutar esto en la terminal:
bundle config build.mysql2 --with-mysql-config=/usr/local/mysql/bin/mysql_config
Tenga en cuenta "mysql2" no "mysql" como se muestra en ese blog.
Eso agrega una configuración al archivo ~ / .bundle / config
A continuación, agregue esto a ~ / .bash_profile:
export ARCHFLAGS="-arch x86_64"
Eso es lo mismo que decirle a bundler que ejecute el comando en la parte superior de esta publicación.
Esto funcionó para mí en mi Mac OSX Lion:
sudo env ARCHFLAGS="-I/usr/local/include/mysql/mysql -pipe -fPIC -D_P1003_1B_VISIBLE -DSIGNAL_WITH_VIO_CLOSE -DSIGNALS_DONT_BREAK_READ -DIGNORE_SIGHUP_SIGQUIT -DDONT_DECLARE_CXA_PURE_VIRTUAL" gem install mysql -- --with-mysql-dir=/usr/local/mysql --with-mysql-lib=/usr/local/lib/mysql/mysql --with-mysql-include=/usr/local/include/mysql/mysql --with-mysql-config=/usr/local/bin/mysql_config
Hice un paquete de instalación en un repositorio de redmine y recibí el mismo mensaje de error:
mysql.h no se encuentra. por favor revise su instalación de mysql y vuelva a intentarlo.
Ejecutando Fedora 16 64 bits, ¡todo lo que hice fue instalar mysql-devel
(paquete de desarrollo) desde las rpm de distribución y el problema fue resuelto!
Así que creo que podrías simplemente
yum install mysql-devel
o apt-get el paquete de desarrollo que falta.
La única forma en que podía hacer que esto funcionara era instalar la versión x64 de mysql. Acabo de utilizar el .dmg ubicado aquí http://dev.mysql.com/downloads/mysql/ y funcionó como un amuleto. Ojalá pudiera recuperar las 4 horas que me llevó imaginarlo.
Mi problema fue el resultado de la primera instalación de MySql a través del binario descargable. Fue instalado originalmente en la versión 5.5.28. Luego intenté instalar vía homebrew. Brew instaló la versión 5.6.x. SIN EMBARGO en el proceso de instalación a través de homebrew, el enlace simbólico para / usr / local / mysql todavía apuntaba a 5.5.28.
Actualice su enlace simbólico a la versión que se haya instalado a través de homebrew.
ex: / usr / local / mysql -> /usr/local/Cellar/mysql/5.6.13/
Esto podría ser solo parte de la solución.
Para aquellos en Fedora 21, y usted ya instaló mysql-devel:
yum install redhat-rpm-config
resuelto el problema para mí ver: documentos de redhat
Para mariadb:
sudo apt-get install libmariadbclient18 libmariadbclient-dev
Entonces
gem install mysql2
podría ser instalado con éxito
Probé todas las soluciones publicadas aquí, pero no tuve suerte. Reinstalé mysql con homebrew un par de veces y todavía no tuve suerte. Luego me encontré con una publicación de blog con una solución.
Edité el archivo mysql_config en /usr/local/Cellar/mysql/5.6.12/bin
y /usr/local/Cellar/mysql/5.6.12/bin
las opciones W-compiler -Wno-null-conversion
y -Wno-unused-private-field
unused -Wno-unused-private-field
para cflags y cxxflags.
Esto resolvió el problema con gem install mysql2
y bundle install
Referencia: http://www.randomactsofsentience.com/2013/05/gem-install-mysql2-missing-mysqlh-on-os.html
Publicando esto siempre que pueda, con suerte ayudará a alguien y les ahorrará mucho tiempo.
Cavé durante 2 días en Internet y , y no fue hasta que encontré http://www.randomactsofsentience.com/2013/05/gem-install-mysql2-missing-mysqlh-on-os.html y luego comencé a trabajar con este ticket para mysql2 que resolví el problema.
Con mi configuración (como se explica en el ticket), los interruptores del compilador de -Wno-null-conversion -Wno-unused-private-field se romperían y darían un error que no era exactamente correcto, que era:
mysql.h is missing. please check your installation of mysql and try again
Verifique que gcc esté instalado. Si no es así, recibirá el mismo mensaje de error.
Puede consultar los resultados / archivo de registro que menciona para obtener más pistas sobre la causa.
para las personas que no usaron brew para instalar mysql y usar mysql 5.6 y superior:
de acuerdo con esta respuesta
necesita editar mysql_config
que se colocó en mi caso aquí: /usr/local/mysql-5.6.12-osx10.7-x86_64/bin
y cambie cflags
y cxxflags
a:
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 estas manipulaciones
$ gem install mysql2 -v ''0.3.13''
va a la perfección