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