sierra rails mac high mysql ruby macos rubygems macos-sierra

rails - No se puede instalar la gema mysql2 en macOS Sierra



rbenv (7)

Cuando instale openssl vía brew, debería recibir el siguiente mensaje:

Apple ha desaprobado el uso de OpenSSL a favor de sus propias bibliotecas de cifrado y TLS

En general, no hay consecuencias de esto para usted. Si construyes tu propio software y requiere esta fórmula, necesitarás agregar a tus variables de compilación:

LDFLAGS: -L / usr / local / opt / openssl / lib
CPPFLAGS: -I / usr / local / opt / openssl / include
PKG_CONFIG_PATH: / usr / local / opt / openssl / lib / pkgconfig

Puede establecer estos indicadores de compilación (para la aplicación local) ejecutando lo siguiente:

bundle config --local build.mysql2 "--with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include"

Esto funcionó para mí.

Vea la documentación del paquete para más información.

Estoy configurando mi entorno de desarrollo en el nuevo macOS Sierra .

Antes que nada, instalé Rbenv , Ruby (2.3.1) , Homebrew y la última versión de MySQL (5.7.15) .

$ brew install mysql $ mysql.server start

Ok, MySQL fue inicializado. Es hora de instalar la gema mysql2 ...

$ gem install mysql2 -- --with-mysql-config=/usr/local/Cellar/mysql/5.7.15/bin/mysql_config

Pero no funcionó. 😞

Building native extensions with: ''--with-mysql-config=/usr/local/Cellar/mysql/5.7.15/bin/mysql_config'' This could take a while... ERROR: Error installing mysql2: ERROR: Failed to build gem native extension. current directory: /Users/macuser/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/mysql2-0.4.4/ext/mysql2 /Users/macuser/.rbenv/versions/2.3.1/bin/ruby -r ./siteconf20160921-16853-x1boio.rb extconf.rb --with-mysql-config=/usr/local/Cellar/mysql/5.7.15/bin/mysql_config checking for ruby/thread.h... yes checking for rb_thread_call_without_gvl() in ruby/thread.h... yes checking for rb_thread_blocking_region()... no checking for rb_wait_for_single_fd()... yes checking for rb_hash_dup()... yes checking for rb_intern3()... yes ----- Using mysql_config at /usr/local/Cellar/mysql/5.7.15/bin/mysql_config ----- checking for mysql.h... yes checking for errmsg.h... yes checking for mysqld_error.h... yes ----- Dont know how to set rpath on your system, if MySQL libraries are not in path mysql2 may not load ----- ----- Setting libpath to /usr/local/Cellar/mysql/5.7.15/lib ----- creating Makefile To see why this extension failed to compile, please check the mkmf.log which can be found here: /Users/macuser/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/extensions/x86_64-darwin-16/2.3.0-static/mysql2-0.4.4/mkmf.log current directory: /Users/macuser/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/mysql2-0.4.4/ext/mysql2 make "DESTDIR=" clean current directory: /Users/macuser/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/mysql2-0.4.4/ext/mysql2 make "DESTDIR=" compiling client.c compiling infile.c compiling mysql2_ext.c compiling result.c compiling statement.c linking shared-object mysql2/mysql2.bundle ld: library not found for -lssl clang: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [mysql2.bundle] Error 1 make failed, exit code 2 Gem files will remain installed in /Users/macuser/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/mysql2-0.4.4 for inspection. Results logged to /Users/macuser/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/extensions/x86_64-darwin-16/2.3.0-static/mysql2-0.4.4/gem_make.out


Simplemente tuve el mismo problema, probé todas las soluciones enumeradas anteriormente y luego comencé a golpear mi cabeza contra el teclado durante un par de horas.

Luego pensé en intentar instalar / reinstalar las herramientas de línea de comandos de Xcode:

xcode-select --install

Una vez que hice eso, la gema mysql2 se instaló sin problemas. ¡Espero que sí lo haga!


En primer lugar, debería intentar 2 respuestas aquí. Si instaló openssl pero todavía no funciona. Deberías intentar actualizar la referencia de gemas. A tiene el mismo problema y funcionó para mí.

gem source -r https://rubygems.org/

gem source -a https://rubygems.org/


Estoy aquí para compartir mi solución, ya que las otras respuestas no funcionaron.

Para mi entorno, necesito MySQL 5.6, así que tuve que usar:

brew install mysql56 lugar de brew install mysql

El paquete que instala la gema mysql2 sigue fallando, hasta que:

brew link mysql56

También corrí después:

mysql.server start

El último paso puede ser innecesario, pero por las dudas.


Intenta instalar xcode-select --install


Así que me encontré con este problema similar y para mí resultó ser una versión de ruby ​​incorrecta y una versión incompatible de MySQL. Uso ruby ​​2.3 en la mayoría de mis proyectos, pero heredé un proyecto 2.1. Cambiar a rvm para usar 2.1 me ayudó un poco más.

Entonces encontré esto: https://github.com/brianmario/mysql2/issues/603 que decía que tenía que usar la versión de gema mysql2 mayor que 0.3.17 con MySQL versión 5.7

Se actualizó la gema a 0.3.17 y se disparó hacia arriba. Espero que esto ayude a alguien.


Casi el mismo escenario que @Caio Tarifa, Ruby 2.3.3, mysql 5.6 y mysql2. Intenté un par de soluciones anteriores y finalmente lo hice funcionar con el enfoque de @kylekeesling.

Primero, intenté con la solución 1 de @spickermann:

brew reinstall openssl && brew link openssl --force

No pasó nada, se muestra el mismo error.

Segundo, una solución probada por @Alessandro Berardi:

bundle config --local build.mysql2 "--with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include"

Esto tiene errores diferentes pero más, ya que sobrescribe la configuración de la extensión de gem para que falle la instalación de la extensión de gem.

Finalmente, probé la solución @kylekeesling:

xcode-select --install

Se soluciona el problema de la gema de mysql, así como el nikogiri. Como ya instalé Xcode, en mi caso reinstalaré las herramientas de línea de comandos de Xcode.