Instalación de MySQL: ERROR: No se pudo construir la extensión nativa de gemas

77

Estoy tratando de instalar MySQL en la última versión debido a que alguna instalación salió mal en algún momento. Ejecuto el comando gem install mysqly recibo lo siguiente:

Construyendo extensiones nativas. Esto podría llevar un tiempo ... ERROR: Error al instalar mysql: ERROR: No se pudo compilar la extensión nativa de gem.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb extconf.rb: 4: advertencia: directorio de escritura inseguro / usr / bin en PATH, modo 040777 extconf.rb: 4: advertencia: directorio de escritura inseguro / usr / bin en PATH, modo 040777 extconf.rb: 7: advertencia: directorio de escritura inseguro / usr / bin en PATH, modo 040777 mkmf.rb no puede encontrar archivos de encabezado para ruby ​​en / System /Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h

Los archivos de gemas permanecerán instalados en /Library/Ruby/Gems/1.8/gems/mysql-2.8.1 para su inspección. Resultados registrados en /Library/Ruby/Gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out

He buscado y probado una gran cantidad de cosas, desde instalar versiones específicas hasta intentar reinstalar Ruby sin suerte.

¿Alguna idea de dónde podría estar yendo mal?

Estoy tratando de instalar MySQL en la última versión debido a que alguna instalación salió mal en algún momento. Ejecuto el comando gem install mysqly recibo lo siguiente:

Construyendo extensiones nativas. Esto podría llevar un tiempo ... ERROR: Error al instalar mysql: ERROR: No se pudo compilar la extensión nativa de gem.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb extconf.rb: 4: advertencia: directorio de escritura inseguro / usr / bin en PATH, modo 040777 extconf.rb: 4: advertencia: directorio de escritura inseguro / usr / bin en PATH, modo 040777 extconf.rb: 7: advertencia: directorio de escritura inseguro / usr / bin en PATH, modo 040777 mkmf.rb no puede encontrar archivos de encabezado para ruby ​​en / System /Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h

Los archivos de gemas permanecerán instalados en /Library/Ruby/Gems/1.8/gems/mysql-2.8.1 para su inspección. Resultados registrados en /Library/Ruby/Gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out

He buscado y probado una gran cantidad de cosas, desde instalar versiones específicas hasta intentar reinstalar Ruby sin suerte.

¿Alguna idea de dónde podría estar yendo mal?

EDITAR : Instalé XCode de mi DVD de Snow Leopard y el error cambió ligeramente a lo siguiente:

Construyendo extensiones nativas. Esto podría llevar un tiempo ... ERROR: Error al instalar mysql: ERROR: No se pudo compilar la extensión nativa de gem.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb extconf.rb: 4: advertencia: directorio de escritura inseguro en el mundo / usr / bin en PATH, modo 040777 extconf.rb: 4: advertencia: directorio de escritura inseguro / usr / bin en PATH, modo 040777 extconf.rb: 7: advertencia: directorio de escritura / usr / bin inseguro en PATH, modo 040777 extconf.rb: 17: advertencia: directorio de escritura / usr inseguro en el mundo / bin en PATH, modo 040777 comprobando mysql_query () en -lmysqlclient ... no comprobando main () en -lm ... sí comprobando mysql_query () en -lmysqlclient ... no comprobando main () en - lz ... sí comprobando mysql_query () en -lmysqlclient ... no comprobando main () en -lsocket ... no comprobando mysql_query () en -lmysqlclient ... no comprobando main () en -lnsl. ... no se comprueba mysql_query () en -lmysqlclient ... no se comprueba main () en -lmygcc ...sin verificación de mysql_query () en -lmysqlclient ... no * extconf.rb falló * No se pudo crear Makefile debido a alguna razón, probablemente falta de las bibliotecas y / o encabezados necesarios. Consulte el archivo mkmf.log para obtener más detalles. Es posible que necesite opciones de configuración.

Opciones de configuración proporcionadas: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include = $ {opt-dir} / include --with-opt-lib - sin-opt-lib = $ {opt-dir} / lib --with-make-prog --without-make-prog --srcdir =. --curdir --ruby = / Sistema / Biblioteca / Frameworks / Ruby.framework / Versions / 1.

Los archivos de gemas permanecerán instalados en /Library/Ruby/Gems/1.8/gems/mysql-2.8.1 para su inspección. Resultados registrados en /Library/Ruby/Gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out

hacer "which mysql" en la línea de comando no devuelve nada, lo que significa que no lo reconoce. También instalé la opción de preferencias del sistema MySQL y no puedo detener la ejecución de MySQL. ¡Ahora estoy completamente atascado en cuanto a qué hacer!

EDITAR EDITAR

Acabo de reinstalar MySQL por completo usando esta guía http://hivelogic.com/articles/installing-mysql-on-mac-os-x

Desafortunadamente, esto tampoco funcionó, sigo recibiendo los mismos errores. Ni siquiera puedo hacer mysql -uroot en la línea de comando, obtengo el error de:

ERROR 2002 (HY000): No se puede conectar al servidor MySQL local a través del socket '/tmp/mysql.sock' (2)

Entonces creo que lo he intentado todo.

** RESUELTO *

Lo siento chicos, la razón por la que esto no funciona fue debido a las rutas de MySQL. Escribí en un blog aquí: http://www.kieransenior.co.uk/2010/02/mysql-cant-connect-using-ruby-on-rails-mac-os-x-snow-leopard/

Kezzer
fuente

Respuestas:

64

Instalación de la gema mysql en OSX

en una terminal .. Primero haga un 'localizar mysql_config' y luego reemplace la ruta en el siguiente comando con donde está ese archivo .

$ sudo gem install mysql -- —–with-mysql-config=/usr/local/mysql/bin/mysql_config
Building native extensions. This could take a while…
Successfully installed mysql-2.7
1 gem installed
Trevoke
fuente
2
He instalado XAMPP para OSX, por lo que mi orden fue: gem install mysql -- --with-mysql-config=/Applications/XAMPP/bin/mysql_config. ¡No se requiere sudo!
thesmart
1
Solo para tu información. Todavía no pude instalar, pero luego me di cuenta de que / usr / local / mysql / bin no estaba en mi variable env PATH. Una vez que obtuve eso en mi PATH, pude instalarlo sin problemas.
justspamjustin
3
Tuve sudo locate mysql_configque obtener las rutas de configuración. De lo contrario, devuelve el mensaje:WARNING: The locate database (/var/db/locate.database) does not exist. ...
RNickMcCandless
Tuve que instalar las herramientas de línea de comandos de xcode antes de que esta respuesta finalmente funcionara para mí. Vea esta respuesta relacionada: stackoverflow.com/questions/761521/… y luego intente sudo gem install mysql1 etccomo en esta respuesta :)
Josh Burson
@JoshBurson Si quieres una guía completa para instalar mysql desde cero en OSX, creo que es una historia completamente diferente.
Trevoke
163

En sistemas Debian (o Ubuntu), simplemente instale el paquete libmysqlclient-dev usando:

sudo apt-get install libmysqlclient-dev

y entonces:

gem install mysql

Se instalará sin ningún error.

dibujante
fuente
1
¡Excelente! Trabajó en Ubuntu 14.10 64 bits
miquel
También funcionó para mí, Ubuntu 14.4 LTS trusty
user3632930
17

En primer lugar, debe diferenciar entre MySQL como servidor, MySQL como cliente y los enlaces de Ruby a MySQL.

No estoy familiarizado con Mac, pero para * nix OS necesita instalar MySQL a través de su administrador de paquetes. Para instalar las fijaciones Ruby con

gem install mysql

necesita los encabezados de desarrollo de ruby ​​(en Ubuntu es el paquete ruby-dev) y los encabezados de desarrollo de MySQL-Client (actualmente libmysqlclient16-deven Ubuntu). No sé si tienen un nombre diferente en Mac, pero después de instalarlos, los enlaces de Ruby deberían instalarse sin ningún error.

Aurril
fuente
Indudablemente, existe una versión multipack que hace ambas cosas. Yo también he pasado por este proceso. Creo que tienes razón, necesito diferenciar entre los dos ya que este ha sido principalmente mi problema. ¿Otra opción, quizás, es instalar MAMP y usar eso? ¿Qué necesitaría entonces?
Kezzer
MAMP son las siglas de Mac, Apache, MySQL, Php. Por lo tanto, aún necesitaría un servidor MySQL y, además, Apache 2, y las bibliotecas php para apache. No estoy seguro de si puede seleccionar MAMP en su administrador de paquetes e instalará todos los archivos necesarios. Tal vez un usuario de Mac pueda ayudarte.
Aurril
De hecho, no cubriría la necesidad de MAMP, pero era solo una forma fácil de ofrecer una instancia de MySQL.
Kezzer
4
Esto era exactamente lo que necesitaba en Ubuntu: sudo apt-get install ruby-devy sudo gem install mysql. ¡Gracias!
Dan Breslau
1
sí, esto funcionó: 'sudo apt-get install ruby-dev libmysqlclient16-dev' luego 'sudo gem install mysql'
Travis Reeder
9

Varias personas encontraron útil esta publicación .

Además, primero tenía que escribir esto:

yum install mysql-devel

y entonces:

gem install mysql 

Para algunas personas, es posible que deba escribir:

gem install mysql -- --with-mysql-config=/usr/local/mysql/mysql_config
Guy Saban
fuente
Amigo, si pudiera darte 2, ¡lo haría! Aunque es bueno tener en cuenta que este comando yum solo puede ser útil con algunas versiones de LINUX. En mi caso CentOS 6.0
Onema
5

en OSX Mountain Lion: Si lo ha brewinstalado, brew install mysqlsiga las instructionsinstrucciones sobre cómo crear una base de datos de prueba con mysql en su máquina. No es necesario que lo hagas hasta el final, no lo necesito. Después de hacerlo, pude agrupar la instalación y el rastrillo.

francamente como
fuente
¡Esta fue la única solución que funcionó para mí! ¡Salud!
Cynthia Sanchez
3

Para resolver

Gem :: Ext :: BuildError: ERROR: No se pudo construir el error de extensión nativa de gem para mysql2,

Creo que libmysql-ruby se cambió con ruby-mysql

Simplemente intente con los siguientes comandos,

sudo apt-get install ruby-mysql

& luego

sudo apt-get install libmysqlclient-dev
rahul patil
fuente
2

Tuve una experiencia similar, así que aquí están las cosas que probé

En primer lugar, traté de instalar los paquetes requeridos de mysql ejecutando el siguiente comando en mi terminal

sudo apt-get install build-essential libmysqlclient-dev

En segundo lugar, intenté actualizar rubygems en mi sistema ejecutando el siguiente comando en mi terminal

sudo gem update --system

Pero todavía estaba experimentando el mismo problema. Después de mucha investigación, me di cuenta de que estaba usando una versión casi desactualizada de la gema mysql. Simplemente necesitaba usar la gema mysql2 (gema mysql2 ) y no la gema mysql , así que lo arreglé ejecutando el siguiente comando en mi terminal

gem install mysql2

Esto funcionó bien para mi. Antes de ejecutar el último comando, asegúrese de haber ejecutado el primer y el segundo comando para asegurarse de que todo esté bien en su sistema.

Eso es todo.

espero que esto ayude

Promesa Preston
fuente
0

puede intentar reinstalar la última versión de xcode / dev. herramientas para leopardo de las nieves: esto debería corregir los errores

romano
fuente
Esta fue una de las primeras cosas que hice. La versión de Snow Leopard de XCode está instalada en mi máquina.
Kezzer
0

Atención: debe especificar - key, y luego --with-mysql-config = / usr / local / mysql / bin / mysql_config

Vestel
fuente
1
Nuevamente, esta respuesta está flotando en muchos lugares. En mi caso, no funciona. Además, mysql no existía para mí en / usr / local / creo.
Kezzer
0

Si usa el servidor Percona Mysql

$ yum instalar Percona-Server-devel-55

$ gem instalar mysql

AlexeyKa
fuente
0
yum -y install gcc mysql-devel ruby-devel rubygems
gem install mysql2
Harikesh Kolekar
fuente
0

Su sistema operativo Ubuntu necesita instalar la biblioteca para el cliente mysql sudo apt-get install libmysqlclient-dev

Después de eso, solo instala bundleobundle install

Mayur Kambariya
fuente