gema mysql2 No se pueden crear extensiones nativas

La computadora de nuestro interno tiene problemas para instalar la gema mysql2. Acabamos de actualizar su computadora de OS X 10.6 a 10.8 (Mountain Lion). Intenté instalar mysql a través de homebrew y a través del instalador DMG de 64 bits. También intenté enlazar a las herramientas de desarrollo (como se indica aquí: No se pueden instalar algunas gemas después de la actualización del león de montaña). Tenemos Xcode (4.4) instalado y las herramientas de línea de comandos instaladas. Intentamos reiniciar después de instalar las herramientas de línea de comandos.

Esta es su declaración PATH de ~/.bashrc:

PATH=/usr/local/bin:$PATH:$HOME/.rvm/bin:/usr/local/mysql/bin # Add RVM to PATH for scripting

Enlace simbólico:

Diego-Blantons-MacBook-Pro-3:~ lmrunner07$ sudo ln -s /usr/bin/llvm-gcc-4.2 /usr/bin/gcc-4.2
Password:

Intenta instalar la gema:

Diego-Blantons-MacBook-Pro-3:~ lmrunner07$ gem install mysql2
Building native extensions.  This could take a while...
ERROR:  Error installing mysql2:
    ERROR: Failed to build gem native extension.

        /Users/lmrunner07/.rvm/rubies/ruby-1.9.3-p194/bin/ruby extconf.rb
checking for rb_thread_blocking_region()... yes
checking for rb_wait_for_single_fd()... yes
checking for mysql.h... yes
checking for errmsg.h... yes
checking for mysqld_error.h... yes
creating Makefile

make
compiling client.c
In file included from /Users/lmrunner07/.rvm/rubies/ruby-1.9.3-p194/include/ruby-1.9.1/ruby.h:32,
                 from ./mysql2_ext.h:8,
                 from client.c:1:
/Users/lmrunner07/.rvm/rubies/ruby-1.9.3-p194/include/ruby-1.9.1/ruby/ruby.h:105: error: size of array ‘ruby_check_sizeof_long’ is negative
/Users/lmrunner07/.rvm/rubies/ruby-1.9.3-p194/include/ruby-1.9.1/ruby/ruby.h:109: error: size of array ‘ruby_check_sizeof_voidp’ is negative
In file included from /Users/lmrunner07/.rvm/rubies/ruby-1.9.3-p194/include/ruby-1.9.1/ruby/intern.h:34,
                 from /Users/lmrunner07/.rvm/rubies/ruby-1.9.3-p194/include/ruby-1.9.1/ruby/ruby.h:1382,
                 from /Users/lmrunner07/.rvm/rubies/ruby-1.9.3-p194/include/ruby-1.9.1/ruby.h:32,
                 from ./mysql2_ext.h:8,
                 from client.c:1:
/Users/lmrunner07/.rvm/rubies/ruby-1.9.3-p194/include/ruby-1.9.1/ruby/st.h:67: error: size of array ‘st_check_for_sizeof_st_index_t’ is negative
client.c: In function ‘rb_raise_mysql2_error’:
client.c:98: warning: ISO C90 forbids mixed declarations and code
client.c: In function ‘rb_mysql_client_socket’:
client.c:590: warning: ISO C90 forbids mixed declarations and code
make: *** [client.o] Error 1


Gem files will remain installed in /Users/lmrunner07/.rvm/gems/ruby-1.9.3-p194/gems/mysql2-0.3.11 for inspection.
Results logged to /Users/lmrunner07/.rvm/gems/ruby-1.9.3-p194/gems/mysql2-0.3.11/ext/mysql2/gem_make.out

Eliminé el mysql instalado en homebrew, así como el agente de lanzamiento. También rm -rf el directorio de gemas (Users/lmrunner07/.rvm/gems/ruby-1.9.3-p194/gems/mysql2-0.3.11)

preguntado el 27 de julio de 12 a las 19:07

¿Puede verificar que su versión XCode 4.4 es el relanzamiento de Lion y Mountain Lion? -

Perdona, ¿qué quieres que compruebe? -

Cuando se lanzó Mountain Lion, actualizaron Xcode 4.4 en la tienda de aplicaciones para que fuera una versión compatible con Lion y Mountain Lion. Si no reinstaló Xcode, es probable que tenga la versión que solo es compatible con versiones anteriores de OS X. -

Instalamos Xcode después de instalar mountain lion -

Me estaba encontrando con el mismo problema. Terminé eliminando RVM (borrando el directorio ~/.rvm) y reinstalando RVM. Funcionó muy bien después de eso. -

6 Respuestas

Resolví esto por:

  1. Instalando homebrew ruby <(curl -fsSk https://raw.github.com/mxcl/homebrew/go) (consulte su sitio web para uso Enlace)
  2. Siguiendo estas instrucciones http://robots.thoughtbot.com/post/27985816073/the-hitchhikers-guide-to-riding-a-mountain-lion
  3. Reinstalando mysql con homebrew brew install mysql. (Intenté instalar mysql siguiendo estas instrucciones http://erictarn.com/post/28269453881/how-i-installed-mysql-rvm-ruby-and-rails-on-mountain pero me encontré con problemas más tarde, así que recomendaría reinstalar mysql con homebrew).
  4. Reinstalando rvm y rails y las gemas para mi proyecto (que incluía mysql2)

Nota: cuando traté de compilar tuve un problema con la biblioteca, Library not loaded: libmysqlclient.18.dylib, que se solucionó ejecutando sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib (Referirse a Biblioteca no cargada: error libmysqlclient.16.dylib al intentar ejecutar 'rails server' en OS X 10.6 con mysql2 gem si tienes el mismo problema).

Respondido 03 Feb 22, 10:02

El interno está fuera hoy, así que no puedo probar esto. Si funciona, volveré con puntos. Gracias por los enlaces Tyler DeWitt

El enlace en el paso 2 lo hizo. No estoy seguro de qué paso lo hizo, ¡pero gracias! - Tyler DeWitt

no hay problema. gracias por los puntos me alegro de que haya funcionado Me llevó muchísimas horas resolverlo yo mismo. Pensé que debería compartir. - Harro

Has probado:

gem install mysql2 --with-mysql-config=/usr/lib64/mysql/mysql_config

Vuelva a colocar la /usr/lib64/mysql/mysql_config con la ubicación de su configuración mysql.

Respondido 27 Jul 12, 19:07

Creo que el comando es: gem install mysql2 -- --with-mysql-config=/usr/lib64/mysql/mysql_config? (extra --) Sin embargo, obtuve el mismo resultado: Tyler DeWitt

Desafortunadamente, el proceso de instalación está muy segmentado y es difícil aislar cuál podría ser su problema sin mirar los pasos en general.

Sin saber más sobre los pasos de instalación, aquí hay algunas notas que seguí que me llevaron a un cuadro de desarrollo estable de Rails Mountain Lion (nuevamente, disculpas porque esto no es más específico).

  1. Instrucciones para RVM, Ruby: moncefbelyamani.com

    Nota: Ciertamente hubo pasos aquí que tomé a través de sugerencias de brew doctor y 'rvm requirements' NUNCA he tomado en configuraciones anteriores.

    notas como:

    • Xcode 4.3+ solo usa ruby-1.9.3-p125+ (y me dice si tuve problemas de compilación para cambiar a Xcode 4.1)
    • Usar brew install autoconf automake apple-gcc42
    • Usar brew tap homebrew/dupes
    • Y otros...
  2. Instrucciones específicas para rieles: railsapps.github.com

  3. Para mysql (saltando a la parte mysql de la instalación: coolestguyplanettech.com

Nota: hice el paso opcional: ... para usar los comandos mysql sin escribir la ruta completa a los comandos, debe agregar el directorio mysql a la ruta de su shell... como descubrí, hacerlo puede ayudar durante las compilaciones, etc. (algunos scripts asumen...)

Aquí, intenté simplemente crear una nueva aplicación de rieles con la base de datos predeterminada mysql (que derribó mysql2 a través del paquete). A partir de ahí, traté de hacer una aplicación de prueba con un andamio rápido, y mysql2 vomitó.

A partir de ahí, recibí un error 'Biblioteca no cargada: libmysqlclient.16.dylib' y como se indica aquí: genialidad de stackoverflow Agregué esta línea a mi .profile: export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH

MI RUTA incluía rieles y rubí explícitamente: /Users/gabriel/.rvm/gems/ruby-1.9.3-p194@rails327/bin:/Users/gabriel/.rvm/gems/ruby-1.9.3-p194@global/bin:/Users/gabriel/.rvm/rubies/ruby-1.9.3-p194/bin:/Users/gabriel/.rvm/bin:/usr/local/mysql/bin:/usr/local/bin:/usr/bin:/usr/sbin:/opt/X11/bin:

Con suerte, estos recursos proporcionarán alguna ayuda adicional.

contestado el 23 de mayo de 17 a las 13:05

El interno está fuera hoy, así que no puedo probar esto. Si funciona, volveré con puntos. Gracias por los enlaces Tyler DeWitt

Pude compilarlo ejecutando: PATH=/bin:/usr/bin:/opt/mysql5_64/bin gem install mysql2 Where mysql5_64 Descargué la última versión de 64 bits de mysql y la extraje allí. Dejando mis bases de datos mysql ya instaladas intactas.

Respondido el 29 de enero de 13 a las 04:01

Pude arreglar esto por implode-ing rvm e instalando ruby ​​de Homebrew. Luego, la gema mysql2 se instaló bien.

Este no es el primer problema como este con el que me he encontrado con rvm. No creo que lo vuelva a usar.

Respondido el 27 de junio de 13 a las 19:06

Tuve este trabajo con éxito en OSX Yosemite:

sudo port install mysql56
gem install mysql2 -- --with-mysql-config=/opt/local/lib/mysql56/bin/mysql_config

Respondido el 16 de junio de 15 a las 06:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.