mysql ruby macos gem clang

No puedo instalar la gema mysql en OS X



ruby macos (4)

Esto se debe a Xcode 5.1, que ya se informó como un error para Ruby.

https://bugs.ruby-lang.org/issues/9624

Hay un poco más de discusión adicional aquí: Ruby Gem instala Json falla en Mavericks y Xcode 5.1 - argumento desconocido: ''-multiply_definedsuppress''

Estoy haciendo un

sudo gema instalar mysql

en OS X para instalar la gema mysql. Esto falla con la siguiente salida:

Construcción de extensiones nativas. Esto podría tomar un tiempo...

ERROR: Error al instalar mysql:

ERROR: Error al construir la extensión nativa de la gema.

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb

buscando mysql_ssl_set () ... yes

buscando rb_str_set_len () ... yes

buscando rb_thread_start_timer () ... no

buscando mysql.h ... si

creando makefile

hacer "DESTDIR =" limpio

hacer "DESTDIR ="

compilando mysql.c

vincular objeto compartido mysql / mysql_api.bundle

clang: error: argumento desconocido: ''-multiply_definedsuppress'' [-Wunused-command-line-> argumento-hard-error-in-future]

clang: nota: esto será un error grave (no se puede cambiar a una advertencia) en el futuro

make: * [mysql_api.bundle] Error 1

hacer fallar, salir código 2

Los archivos Gem permanecerán instalados en /Library/Ruby/Gems/2.0.0/gems/mysql-2.9.1 para su inspección.

Resultados registrados en /Library/Ruby/Gems/2.0.0/extensions/universal-darwin-13/2.0.0/mysql-2.9.1/gem_make.out

¿Alguna idea de qué podría estar causando esto? Tengo mysql instalado con homebrew si eso marca la diferencia.


Las respuestas anteriores son correctas. La solución más fácil es reconstruir el rubí en tu máquina. Las extensiones de gemas usan la configuración de construcción de ruby ​​cuando se construyó a sí misma y si construiste tu ruby ​​antes del Xcode 5.1, su configuración de construcción contiene las banderas ofensivas.

Esto debería arreglarlo para todas las muchas gemas afectadas.


Parece ser un problema con rbconfig.rb de Apple:

$ grep -n DLDFLAGS /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/universal-darwin13/rbconfig.rb 82: CONFIG["LIBRUBY_DLDFLAGS"] = "-undefineddynamic_lookup -multiply_definedsuppress -install_name $(libdir)/$(LIBRUBY_SO) -current_version $(MAJOR).$(MINOR).$(TEENY) -compatibility_version $(ruby_version) $(XLDFLAGS)" 84: CONFIG["EXTDLDFLAGS"] = "" 125: CONFIG["DLDFLAGS"] = "-undefineddynamic_lookup -multiply_definedsuppress"

La eliminación de -multiply_definedsuppress debería permitir que se instale.


De las notas de lanzamiento de Xcode / Clang de Apple:

El compilador Apple LLVM en Xcode 5.1 trata las opciones de línea de comando no reconocidas como errores. Este problema se ha visto al compilar extensiones nativas de Python y Ruby Gems, donde actualmente se especifican algunas opciones de compilador no válidas. Los proyectos que utilicen opciones de compilación no válidas deberán modificarse para eliminar esas opciones. Para ayudar a facilitar la transición, el compilador aceptará temporalmente una opción para degradar el error a una advertencia:

-Wno-error=unused-command-line-argument-hard-error-in-future

ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install GemName