La gema de Nokogiri no se puede instalar en OS X Mavericks

1

La instalación falla mostrando:

checking for iconv_open() in iconv.h... no
checking for iconv_open() in -liconv... no
checking for iconv_open() in -liconv... no
checking for libiconv_open() in iconv.h... no
checking for libiconv_open() in -liconv... no
checking for libiconv_open() in -liconv... no
libiconv is missing.

Sin embargo, al mirar el mkmf.log de nokogiri, se muestran los siguientes errores:

ld: warning: ignoring file /usr/local/Cellar/libxslt/1.1.28/lib/libxslt.dylib, **file was built for x86_64 which is not the architecture being linked (i386)**: /usr/local/Cellar/libxslt/1.1.28/lib/libxslt.dylib

ld: warning: ignoring file /usr/local/Cellar/libxml2/2.9.1/lib/libxml2.dylib, **file was built for x86_64 which is not the architecture being linked (i386)**: /usr/local/Cellar/libxml2/2.9.1/lib/libxml2.dylib

ld: warning: ignoring file /usr/local/Cellar/libiconv/1.14/lib/libiconv.dylib, **file was built for x86_64 which is not the architecture being linked (i386)**: /usr/local/Cellar/libiconv/1.14/lib/libiconv.dylib

Tengo xcode y sus herramientas de comando instaladas. Mi ~ / .bash_profile tiene una compilación de 64 bits forzada por: export ARCHFLAGS="- arch x86_64"

Tengo libxml2, libxslt y libiconv instalados a través de Homebrew, y cada uno está vinculado. He intentado instalar todo esto sin el ARCHFLAG en .bash_profile.

También he preparado instalar apple-gcc42 y enlazar, según los consejos que he encontrado.

He intentado instalar nokogiri al pasar las rutas a libxml2, libxslt y libiconv en / usr / local / Cellar /, pero la instalación aún falla, con los mismos errores que arriba.

He desperdiciado al menos un día en esto, solo tratando de instalar una gema Ruby. Realmente me gustaría volver a desarrollar realmente.

¿Alguien puede ayudar?

    
pregunta user3591456 01.05.2014 - 06:26

1 respuesta

1

No puedes asumir que la versión de ruby incorporada en OS X es compatible con las gemas que quieras usar. No intente eliminar la versión de ruby que se incluye con OS X, ni actualícela ni actualícela a menos que con App Store / Actualización de software / actualización de software. La mayoría de los rubiers te dirán que ni siquiera te molestes en usar el ruby que viene con OS X. Pero puedes instalar varias versiones de ruby, y definitivamente necesitarás un Ruby version manager si pretendes usar muchas gemas.

una vez, ruby fue bastante fácil de usar, pero ahora, la cantidad de versiones que necesariamente deben ser compatibles es legion, y los desarrolladores de gemas a veces te obligan a instalar una nueva versión de ruby en alguna otra versión cuando ya tienes una Buena instalación de rubí! Grr. Ruby está empezando a irritarse, porque si bien la información de soporte puede estar disponible, se parece cada vez más a un carrete de pesca que ha avistado aves. En mi opinión, Ruby está roto, alguien tendrá que sacarlo y enrollarlo cuidadosamente para que lo arreglen, y no estoy a la altura. Yo no soy el chico Yo no.

A pesar del entusiasmo de los brewinistas, el administrador de paquetes de Homebrew tiene problemas de crecimiento típicos de una solución inmadura de administración de paquetes. Uso MacPorts para administrar ... todas mis instalaciones, pero también las diversas versiones de instalaciones de ruby que son necesarias para usar las gemas que quiero . MacPorts requiere una versión apropiada de xcode; xcode_5.1.1.dmg es la versión más reciente para los mavericks. rvm usa MacPorts por predeterminado si está instalado.

De tus registros proporcionados, parece que te estás perdiendo cosas. Eso es lo bueno de MacPorts (y cualquier administrador de paquetes maduro); se encarga de las dependencias por usted si no están instaladas.

Instalar MacPorts

 curl -Ok https://distfiles.macports.org/MacPorts/MacPorts-2.2.1.tar.bz2

 tar xf MacPorts-2.2.1.tar.bz2

 cd MacPorts-2.2.1

 ./configure

 make

 sudo make install

 cd ..

 rm -rf Macports-*

 sudo /opt/local/bin/port -v selfupdate

agrega MacPorts a tu $ PATH:

 export PATH=/opt/local/bin:/opt/local/sbin:$PATH

eche un vistazo a lo que MacPorts tiene para ruby

 port search ruby |less

y / o simplemente instala nokogiri

 sudo port -vsk install ruby19 libxml2 libxslt 

 sudo gem install nokogiri

 port -vfp clean ruby19 libxml2 libxslt

si hay problemas, intente

 sudo port upgrade outdated

MacPorts no afectará a la versión OS X de nada, ni a homebrew (excepto para hacerla superflua) y mantiene todo lo que instala en / opt, lo que hace que la desinstalación sea una brisa (pero esto no tiene nada que ver con donde Ruby guarda sus gemas, ~ /.gem). Pero realmente deberías llegar a know y amar a MacPorts, es tu amigo.

para desinstalar completamente MacPorts

 sudo port -dfp uninstall --follow-dependencies installed

 sudo port -dfp uninstall all

 sudo rm -rf /opt/local  

 sudo rm -rf /Library/Tcl/macports*
    
respondido por el chillin 01.05.2014 - 07:55

Lea otras preguntas en las etiquetas