Nokogiri: falta libiconv

Creado en 3 abr. 2011  ·  109Comentarios  ·  Fuente: sparklemotion/nokogiri

Estamos ejecutando Ruby 1.8.7 (a través de RVM) en OS X 10.6.6. Intentar instalar nokogiri 1.4.4 usando el paquete siempre genera el siguiente error:

Installing nokogiri (1.4.4) with native extensions /Users/administrator/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/site_ruby/1.8/rubygems/installer.rb:533:in `build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

/Users/administrator/.rvm/rubies/ruby-1.8.7-p302/bin/ruby extconf.rb 
checking for libxml/parser.h... yes
checking for libxslt/xslt.h... yes
checking for libexslt/exslt.h... yes
checking for iconv_open() in iconv.h... no
checking for iconv_open() in -liconv... no
-----
libiconv is missing.  please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies.
-----
*** extconf.rb failed ***
[…]

Siguiendo las instrucciones aquí en la wiki, así como en la red, hemos usado MacPorts para instalar libxml2 y libxslt , lo que da como resultado la siguiente situación:

sudo port install libxml2 libxslt
Password:
Error: Cannot install libxml2 for the arch(s) 'x86_64' because
Error: its dependency libiconv is only installed for the archs 'i386 ppc'.
Error: Unable to execute port: architecture mismatch

Creamos libxml2 y libxslt desde la fuente e intentamos instalar la gema con las banderas para MacPorts y la compilación como se describe en la wiki, así como algunas variaciones que se encuentran en línea. — Los resultados siguen siendo los mismos. Incluso descargamos la gema, cambiamos extconf.rb como se sugiere aquí: https://github.com/tenderlove/nokogiri/issues#issue/381 y la compilamos localmente, pero el resultado final es el mismo.

¿Qué nos estamos perdiendo? Estamos bastante atrapados en esta situación.

Todos 109 comentarios

Hice esta misma pregunta, y me dieron esta respuesta:

Instalar MacPorts: http://www.macports.org
Agregue /opt/local/bin a su RUTA (bashrc o zshrc o lo que sea que use).
puerto sudo instalar libxml2 y puerto sudo instalar libxslt
Luego, sudo gem install nokogiri --no-rdoc --no-ri debería ejecutarse sin problemas. Eso es todo lo que tenía que hacer para el sistema ruby ​​(1.8.7 en OSX 10.6) y 1.9.2 a través de rvm.

Estaba teniendo los mismos problemas en 10.6. Reinstalé MacPorts, instalé el puerto libxml2 y libxslt nuevamente y ahora ya no tengo estos problemas.

Suponiendo que instaló libxml2 y libxslt con MacPorts, es posible que aún reciba este error debido a una falta de coincidencia en el orden de las rutas de inclusión y las rutas de enlace utilizadas por la llamada a have_func('iconv_open', 'iconv.h')

Solución simple (parche): elimine libiconv.* en /usr/local/lib

Sugerencia: haga que extconf.rb realice una verificación un poco más sofisticada de qué bibliotecas iconv están realmente instaladas, y brinde al usuario una mejor pista. En este caso, libiconv NO falta. En realidad, hay DOS libiconvs, se estaba compilando el encabezado correcto y se estaba vinculando una biblioteca antigua. Parece un problema muy común con el que el mensaje de error del archivo de instalación podría brindar un poco más de ayuda.

Y creo que esto podría ser un problema con mkmf y la forma en que maneja las rutas de la biblioteca. La verificación de compilación fallida para mí fue:

```"gcc -o conftest -I. -I/usr/local/lib/ruby/1.8/i686-darwin10.3.0 -I. -III/opt/local/include -III/usr/local/include -III /usr/local/include -III/usr/include -III/usr/include/libxml2 -I/opt/local/include/libxml2 -I/usr/local/include/libxml2 -I/usr/local/include/libxml2 -II/opt/local/include -II/usr/local/include -II/usr/local/include -II/usr/include -II/usr/include/libxml2 -I/opt/local/include -I/usr /local/include -I/usr/local/include -I/usr/include -I/usr/include/libxml2 -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_XOPEN_SOURCE=1 -fno-common -pipe -fno-common -g -DXP_UNIX -O3 -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline conftest.c -L. -L/usr/local/lib -L/opt/local/lib -L/usr/local/lib -L /usr/lib -L. -lruby-static -lpthread -ldl -lobjc "
Símbolos indefinidos para la arquitectura x86_64:
"_libiconv_open", referenciado desde:

Note the compile stage starts with /opt/local/include, but the link stage starts with /usr/local/lib, which is where the old version was

Estoy usando Lion y homebrew. Para mí, esto funcionó:

brew install libiconv
brew link libiconv

En mi caso (Migración a OS X Lion), para solucionar el problema, limpié macports:

port -qv installed > myports.txt
sudo port -fp uninstall --follow-dependents installed
sudo port clean all

Más detalles: http://trac.macports.org/wiki/Migration

+1 a lo que dijo jfahrenkrug. La guía de instalación en http://nokogiri.org/tutorials/installing_nokogiri.html , la sección homebrew probablemente debería actualizarse;

preparar la instalación de libxml2 libxslt
elaborar enlace libxml2 libxslt

para

cerveza instalar libxml2 libxslt libiconv
elaborar enlace libxml2 libxslt libiconv

La solución de jfahrenkrug también funcionó para mí.

+1 funciona para mí

Seguí las instrucciones para compilar libxml2 y libxslt desde brew. No puedo construir nokogiri.

Recibo un error cuando intento 'brew install libiconv':

$ preparar instalar libiconv
Error: No hay fórmula disponible para libiconv
Apple distribuye libiconv con OS X, puede encontrarlo en /usr/lib.
Algunos scripts de compilación no lo detectan correctamente, verifique los existentes
fórmulas para soluciones.

Estoy en una nueva instalación de Snow Leopard. Prefiero no usar MacPorts.

Por favor ayuda.

@jseigler Estoy ejecutando brew 0.8.1 y puedo instalar libiconv sin problemas. ¿Intentar actualizar la cerveza?

Tuve el mismo problema que @jseigler. Estoy ejecutando brew 0.9 en OS X 10.7.3.

La descarga de libiconv y la compilación manual funcionaron.
http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz

Si descubre cómo instalar Nokogiri en las bibliotecas brew 0.9, hágamelo saber: actualizaré la documentación de instalación. Sin embargo, mientras tanto, como usuario principalmente de Linux, me temo que no puedo ser de mucha ayuda.

@tenderlove , ¿alguna idea? Tú <3 Mac. :) :) :)

Usando brew 0.9 en OSX 10.7.3 funcionó lo siguiente:

preparar la instalación de libxml2 libxslt
elaborar enlace libxml2 libxslt

Instale libiconv desde la fuente:
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
tar xvfz libiconv-1.13.1.tar.gz
CD libiconv-1.13.1
./configure --prefix=/usr/local/Cellar/libiconv/1.13.1
hacer
sudo hacer instalar

Luego instale nokogiri:
instalación gema nokogiri --with-xml2-include=/usr/local/Cellar/libxml2/2.7.8/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.7.8/ lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include --with-iconv-lib =/usr/local/Bodega/libiconv/1.13.1/lib

@brennenf

Buen trabajo. Eso lo hizo por mí también.

Instrucciones publicadas en nokogiri.org:

http://nokogiri.org/tutorials/installing_nokogiri.html#homebrew_09

Gracias a todos.

@brennenf Gracias por esta línea
instalación gema nokogiri --with-xml2-include=/usr/local/Cellar/libxml2/2.7.8/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.7.8/ lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include --with-iconv-lib =/usr/local/Bodega/libiconv/1.13.1/lib

@brennenf su solución me da un buen "Nokogiri-1.5.2 instalado con éxito", pero cuando ejecuto la instalación del paquete en mi aplicación de rieles, todavía falla: "Ocurrió un error al instalar nokogiri (1.5.2), y Bundler no puede continuar.
Asegúrese de que gem install nokogiri -v '1.5.2' tenga éxito antes de agrupar". Tenga en cuenta que "gem install nokogiri -v '1.5.2" también falla. ¿Alguien más se está ejecutando en esto?

@ttringas : envíe un correo electrónico a nokogiri-talk. este problema se relaciona con nokogiri 1.4.4 y ha estado cerrado durante meses.

Hola, ¿alguna actualización sobre Mountain Lion?
No puedo hacer la instalación.

Actualicé la ruta mencionada en la página de instalación de nokogiri:

gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.8.0/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.8.0/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib

esto es lo que tengo a cambio: https://gist.github.com/3186643

@polarblau mira quien tiene problemas ahora :D (yo)

Podría ayudar, pero parece que el "ecosistema" de RVM parece tener errores después de actualizar a Mountain Lion. Elimino el .rvm e instalo rvm usando http://unfiniti.com/software/mac/jewelrybox/ y ahora funciona pero tengo una advertencia que dice:
WARNING: Nokogiri was built against LibXML version 2.8.0, but has dynamically loaded 2.7.8

Lo mismo aquí, reinstalar Ruby funcionó (no estoy realmente sorprendido, es una trampa bastante común)

@polarblau , ¡hasta tarde! eso ya lo he leido ;)

Para que la instalación funcionara en mi Mountain Lion recién actualizado, tuve que eliminar mis paquetes rvm previamente instalados (ubicados en $rvm_path/usr), reconstruir Ruby 1.9.3 y luego gem install nokogiri tuvo éxito. Ver https://rvm.io/packages/

Estoy en Mountain Lion. Reinstalar Ruby funcionó para mí.

buscando libxml/parser.h... no

Falta libxml2.

Descubrí que se requería un paso adicional para resolver lo anterior para Homebrew 0.9 en Mac OS X 10.8 Mountain Lion y es crear un enlace "/usr/bin/gcc-4.2":

preparar la instalación de libxml2 libxslt
elaborar enlace libxml2 libxslt
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
tar xvfz libiconv-1.13.1.tar.gz
CD libiconv-1.13.1
./configure --prefix=/usr/local/Cellar/libiconv/1.13.1
hacer
sudo hacer instalar
sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2
instalación gema nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.8.0/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.8.0/ lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include --with-iconv-lib =/usr/local/Bodega/libiconv/1.13.1/lib

brax4444 muchas gracias, eres un salvavidas!! Funcionó perfectamente con la adición de un sudo en su último comando debido al error:

ERROR: Al ejecutar gema... (Errno::EPERM)
Operación no permitida - ~/.rvm/gems/ruby-1.9.3-p194/gems/nokogiri-1.5.5/.autotest

brax4444 es el hombre! Gracias

Me pregunto si alguien puede ayudar a un novato:

Running Mountain Lion 10.8.2 con Homebrew.

Comenzó con nokogiri 1.5.2: faltaba el típico libiconv.

Entre este hilo, específicamente Brax4444 y el tutorial de instalación en nokogiri: http://nokogiri.org/tutorials/installing_nokogiri.html para Homebrew .9 me queda el siguiente FUBAR:

Ahora tengo nokogiri 1.5.5 donde Rails busca 1.5.2

Todavía no he podido rectificar el problema de libiconv a pesar de las innumerables horas.

Ya no se pueden ejecutar comandos de rieles debido a que falta una gema > nokogiri: 1.5.2

Intente instalar la gema (que sería 1.5.5) o rieles nuevos (estoy intentando cualquier cosa en este momento... ahora vuelvo con el siguiente error: ERROR: Mientras se ejecuta la gema... (Errno::EPERM)
Operación no permitida - /usr/local/rvm/gems/ruby-1.9.3-p194/gems/nokogiri-1.5.5/.autotest

¿Alguien puede salvarme? Tengo que entregar una aplicación para mañana.

¡Hola!

¡Gracias por hacer esta pregunta! ¡Su solicitud de asistencia para usar Nokogiri no quedará sin respuesta!

Sin embargo, este problema está cerrado y los problemas de Github de Nokogiri están reservados para informar errores o enviar parches. Si hace su pregunta en la lista de correo, Team Nokogiri promete que alguien le dará una respuesta de manera oportuna.

Si desea leer sobre la justificación del Equipo Nokogiri para esta política, visite http://bit.ly/nokohelp.

¡Muchas gracias por entender! Y gracias por usar Nokogiri.

brax4444, muchas gracias, sus pasos me ayudaron a superar un problema similar al instalar la gema pg.

Las instrucciones en la página http://nokogiri.org/tutorials/installing_nokogiri.html ahora están desactualizadas debido a la instalación de paquetes de versiones más nuevas (actualmente libxml2 en 2.9.0 y libxslt en 1.1.28).

@Winstons

Gracias por tu comentario, pero este tema está cerrado desde hace bastante tiempo.

Si tiene una actualización para los documentos de instalación de nokogiri, puede enviar una solicitud de extracción a:

https://github.com/sparklemotion/nokogiri.org-tutorials

o puede indicar más claramente el problema y las soluciones (el paquete no instala libxml2 o libxslt... ¿quiere decir brew? ¿o mac ports? o... ?) en un nuevo número y lo abordaremos cuando podamos confirmar de forma independiente.

¡Gracias por usar Nokogiri!

@flavorjones ¡Perdón! Me desviaré.

Gracias por ser coautor de Nokogiri.

También necesitaba instalar XCode para que esto funcionara.

Necesitaba instalar herramientas de desarrollo de línea de comandos.

@dentarg Gracias, tuve el mismo problema, después de restaurar mi Mac, las herramientas de desarrollo de la línea de comandos no estaban instaladas.
Hazlo con este comando 'xcode-select --install'

use https://github.com/Homebrew/homebrew-dupes/blob/master/libiconv.rb

brew tab homebrew/dupes
preparar la instalación de libiconv

y tal vez esto:
paquete de configuración build.nokogiri --use-system-libraries

pero no se si esto funcione

Gracias @ brax4444 , ¡tu consejo también funcionó para mí!

Usé el icono nativov. No necesita vincular libxml2/libxslt.

brew install libxml2 libxslt
gem install nokogiri -- \
    --with-xml2-lib=/usr/local/Cellar/libxml2/2.7.8/lib \
    --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 \
    --with-iconv-lib=/usr/lib \
    --with-iconv-include=/usr/local/include 

Gracias @patricksereno.

paquete de configuración build.nokogiri --use-system-libraries
esto funcionó para mí

¡Gracias, brax4444! ¡Esa línea (enlace gcc) también lo hizo por mí!

VEA LAS INSTRUCCIONES ACTUALIZADAS: https://github.com/sparklemotion/nokogiri/issues/442#issuecomment -53793550

NOTA: si está revisando todas estas publicaciones una por una intentando todo, entonces LO ESTÁ HACIENDO MAL. Todos los consejos para 'elaborar enlace' (incluidas las publicaciones) son malos consejos. Todos los consejos para "--use-system-libraries" también son malos consejos. STAAAHHHHP. Saltar hasta el final.

Creo que esto funcionó para mí:

brew tap homebrew/dupes
brew install libiconv
brew link libiconv --force
gem install nokogiri -v 1.6.3.1 -- --with-iconv-dir=/usr/local

El punto importante aquí es que libiconv necesita ser 'vinculado a /usr/local/include. Con el toque 'incautos', se quejará de anular una biblioteca del sistema, por lo que necesita --force . Luego, solo necesita decirle a nokogiri que busque /usr/local para buscar la ruta iconv para pasar a la libxml2 incrustada cuando la construya. Al usar --use-system-libraries lo que la gente está haciendo es pasar por alto la necesidad de encontrar esta biblioteca para pasarla a la compilación interna de libxml2.

Una forma de solucionar esto sería hacer que homebrew agregue una configuración pkg-config para libiconv, ya que entonces el nokogiri extconf.rb será capaz de encontrarlo.

Otra forma sería codificar /usr/local/include como ruta de búsqueda aquí:

https://github.com/sparklemotion/nokogiri/blob/983ff1f2962c7f9fd20a6fc4c18784eccfff21c0/ext/nokogiri/extconf.rb#L132 -L133

He intentado descubrir cómo extraer /usr/local/include de una ruta en el mkmf de ruby ​​y joder si puedo averiguar cómo hacerlo. Las capas de direccionamiento indirecto en mkmf son demasiado profundas. El método find_header() en mkmf ciertamente puede encontrar iconv.h, pero no sé cómo extraer la información sobre en qué ruta lo encuentra. Esa sería la solución correcta para nokogiri para encontrar el archivo de encabezado en de la misma manera que mkmf puede encontrar el archivo de encabezado.

Parece que el hecho de que nokogiri no pueda encontrar un archivo de encabezado simple en /usr/local/include sin un requisito para un pkg-config externo está roto. Puedo ver lo feo que es codificar la ruta, pero no sé cómo preguntarle a mkmf en qué directorio find_header está encontrando el encabezado...

También parece que hay un error aquí donde dir_config() puede devolver una matriz de rutas separadas por ':' en lugar de una matriz de dos rutas, pero no parece tener nada que ver con la solución de este problema:

https://github.com/sparklemotion/nokogiri/blob/983ff1f2962c7f9fd20a6fc4c18784eccfff21c0/ext/nokogiri/extconf.rb#L126 -L130

@lamont-granquist excelentes instrucciones, aún mejor si cambias de pestaña para tocar :-)

@ericbrooke lol, lo copié de un póster anterior... arreglado ahora...

Creo que probé todos los comandos mencionados en esta publicación y aún me encuentro con esto:

sudo gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.8.0/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.8.0/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-iconv-lib=/usr/lib --with-iconv-include=/usr/local/include/
Building native extensions with: '--with-xml2-include=/usr/local/Cellar/libxml2/2.8.0/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.8.0/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-iconv-lib=/usr/lib --with-iconv-include=/usr/local/include/'
This could take a while...
Building nokogiri using packaged libraries.
ERROR:  Error installing nokogiri:
    ERROR: Failed to build gem native extension.

    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb --with-xml2-include=/usr/local/Cellar/libxml2/2.8.0/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.8.0/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-iconv-lib=/usr/lib --with-iconv-include=/usr/local/include/
Building nokogiri using packaged libraries.
checking for iconv.h... yes
checking for iconv_open() in iconv.h... 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 iconv.h... yes
checking for iconv_open() in iconv.h... no
checking for iconv_open() in -liconv... no
checking for libiconv_open() in iconv.h... no
checking for libiconv_open() in -liconv... no
-----
libiconv is missing.  please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies.

No tengo idea de por qué se descubre iconv.h , pero iconv_open() (está definido en ese archivo). Vi que alguien se encontró exactamente con el mismo problema recientemente: http://stackoverflow.com/questions/24735534/nokogiri-install-fails-iconv-doesnt-work-osx

¿Alguien ha visto este problema?

VEA LAS INSTRUCCIONES ACTUALIZADAS: https://github.com/sparklemotion/nokogiri/issues/442#issuecomment -53793550

@Reinmar , ¿puedes probar lo que sugerí? En particular:

  1. brew link libiconv --force y luego validar que ls -la /usr/local/include/iconv.h está presente
  2. también validar ls -la /usr/local/lib/libiconv.dylib está ahí
  3. entonces simplemente: gem install nokogiri -- --with-iconv-dir=/usr/local

Todas las rutas que está utilizando para los directorios versionados en el interior de la 'Bodega' de homebrew son un poco horribles y frágiles y no estoy demasiado sorprendido de que no funcionen correctamente.

Usé estas instrucciones http://nokogiri.org/tutorials/installing_nokogiri.html para que las rutas sean similares (las versiones difieren).

piotrus<strong i="7">@macus</strong> ~> brew link libiconv --force
Warning: Already linked: /usr/local/Cellar/libiconv/1.14
To relink: brew unlink libiconv && brew link libiconv
piotrus<strong i="8">@macus</strong> ~> ls -la /usr/local/include/iconv.h
lrwxr-xr-x  1 piotrus  admin  39 Jul 29 19:47 /usr/local/include/iconv.h -> ../Cellar/libiconv/1.14/include/iconv.h
piotrus<strong i="9">@macus</strong> ~> ls -la /usr/local/lib/libiconv.dylib
lrwxr-xr-x  1 piotrus  admin  42 Jul 29 19:47 /usr/local/lib/libiconv.dylib -> ../Cellar/libiconv/1.14/lib/libiconv.dylib
piotrus<strong i="10">@macus</strong> ~> gem install nokogiri -- --with-iconv-dir=/usr/local
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
piotrus<strong i="11">@macus</strong> ~> sudo gem install nokogiri -- --with-iconv-dir=/usr/local
Password:
Building native extensions with: '--with-iconv-dir=/usr/local'
This could take a while...
Building nokogiri using packaged libraries.
ERROR:  Error installing nokogiri:
    ERROR: Failed to build gem native extension.

    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb --with-iconv-dir=/usr/local
Building nokogiri using packaged libraries.
checking for iconv.h... yes
checking for iconv_open() in iconv.h... no
checking for iconv_open() in -liconv... no
checking for libiconv_open() in iconv.h... no
checking for libiconv_open() in -liconv... no

Quizás intente actualizar Ruby/gem... :| Sin embargo, es una suposición ciega.

Ok... Actualizar gem no ha ayudado. Luego, después de instalar rvm (pero antes de actualizar Ruby de 2.0.0 a 2.1.*), decidí reiniciar la terminal y, por error, cambié de iterm a la terminal estándar y... la instalación de nokogiri funcionó con el mismo comando que no había funcionado antes. Entonces, tuve que reiniciar la terminal (aunque estaba usando muchas pestañas en iterm anteriormente) o fue un problema causado por xterm. Ni idea, pero tal vez ayude a alguien.

Además de la respuesta de @lamont-granquist, puede omitir la instalación de la gema si está usando el paquete y ejecutar:

bundle config build.nokogiri --use-system-libraries
bundle install

Después de seguir las instrucciones de @lamont-granquist:

brew tap homebrew/dupes
brew install libiconv
brew link libiconv --force
gem install nokogiri -v 1.6.3.1 -- --with-iconv-dir=/usr/local

Y al encontrarme con el mismo problema que @Reinmar , encontré una sugerencia en StackOverflow y la combiné con las otras sugerencias de aquí, lo que resultó en:

NOKOGIRI_USE_SYSTEM_LIBRARIES=1 sudo gem install nokogiri -- --use-system-libraries --with-iconv-dir="$(brew --prefix libiconv)" --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2

Eso finalmente funcionó para mí, espero que eso te ayude @Reinmar . Por qué funciona está más allá de mí, _[comentarios moderados sobre el ecosistema cerrado de Apple aquí]_. Gracias a todos por compartir sus métodos.

Tuve que extraer cerveza casera y todas las cervezas reinstalarla desde cero y luego funcionó

@doublerebel , creo que es posible que deba reinstalar xcode y/o usar xcode-select. lo que hiciste es todo tipo de confusión de todos modos...

Parece que con la versión actual de homebrew, pude arreglármelas con una versión ligeramente simplificada de lo que se le ocurrió a @lamont-granquist:

brew tap homebrew/dupes
brew install libiconv
gem install nokogiri -v 1.6.3.1 -- --with-iconv-dir=/usr/local/opt/libiconv

Sin brew link --force libiconv ...

eso tiene sentido @jacobvosmaer , los documentos probablemente deberían actualizarse para usar eso.

(aunque probablemente elimine el -v 1.6.3.1)

Actualizaría los documentos, pero ahora mismo estoy distraído con otra codificación...

Después de un día entero trabajando en este problema, vale la pena mencionar que la solución de @doublerebel anterior es lo primero que funciona

VEA LAS INSTRUCCIONES ACTUALIZADAS: https://github.com/sparklemotion/nokogiri/issues/442#issuecomment -53793550

esto podría ayudar a los usuarios con Xcode 5.1.1:

 sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

VEA LAS INSTRUCCIONES ACTUALIZADAS: https://github.com/sparklemotion/nokogiri/issues/442#issuecomment -53793550

Además, sugiero asegurarse de que Xcode 5.1.1 esté instalado (y/o reinstalarlo) y luego reinstalar las "Herramientas de línea de comandos para Xcode" aquí: https://developer.apple.com/downloads/

Entonces hazlo:

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
brew tap homebrew/dupes
brew uninstall libiconv
brew install libiconv
gem install nokogiri -- --with-iconv-dir=/usr/local/opt/libiconv

Las actualizaciones y restauraciones de Mac OSX parecen desechar Xcode y homebrew por alguna razón. También me gusta apuntarlo a /usr/local/opt/libiconv mejor que obligarlo a vincularlo a /usr/local/include.

@ lamont-granquist Gracias por sus soluciones. Apliqué cada uno y el tuyo es lo que finalmente me funciona.

Ejecutar 'brew uninstall libxml2 libxslt' y luego 'sudo gem install nokogiri' me lo arregló

Mientras usaba RVM y creaba un nuevo conjunto de gemas, tenía que hacer lo siguiente:

brew uninstall libiconv
brew install libiconv
gem install nokogiri -- --with-iconv-dir=/usr/local/opt/libiconv

@ lamont-granquist Muchas gracias por la solución. Trabajó para mi.

@lamont-granquist @ericbrooke gracias. eso lo mató.

EDITAR: INSTRUCCIONES AÚN MÁS SENCILLAS: https://github.com/sparklemotion/nokogiri/issues/442#issuecomment -54091434

Entonces, fusionando las partes buenas de la pregunta de stackoverflow en esta respuesta:

Ejecute esto para instalar las últimas herramientas de línea de comandos de Xcode y Xcode (seleccione 'Obtener Xcode' en el cuadro de diálogo):

sudo xcode-select --install

Luego actualice libiconv en homebrew:

brew tap homebrew/dupes
brew update
brew uninstall libiconv
brew install libiconv

El hacer la instalación de nokogiri:

gem install nokogiri -- --with-iconv-dir=/usr/local/opt/libiconv

Eso debería funcionar para todos en 10.9 + homebrew

Me encantaría algún comentario sobre ^^^ que

funcionó para mí, gracias!

-Chris

El jueves 28 de agosto de 2014 a las 4:40 p. m., lamont-granquist [email protected]
escribió:

Me encantaría algún comentario sobre ^^^ que


Responda a este correo electrónico directamente o véalo en GitHub
https://github.com/sparklemotion/nokogiri/issues/442#issuecomment-53794057
.

Por curiosidad, ¿para qué sirve brew uninstall libiconv ? ¿Significa que ya tienes un libiconv instalado de alguna manera?

@knu sí, implica que está utilizando Mac OsX y ha instalado libiconv a través de Homebrew y no MacPorts. Ambos son administradores de paquetes. Si no está seguro de si brew está instalado, simplemente escriba brew en la terminal, si recibe esta respuesta:

Example usage:
  brew [info | home | options ] [FORMULA...]
  brew install FORMULA...
  brew uninstall FORMULA...
  brew search [foo]
  brew list [FORMULA...]
  brew update
  brew upgrade [FORMULA...]
  brew pin/unpin [FORMULA...]

Troubleshooting:
  brew doctor
  brew install -vd FORMULA
  brew [--env | config]

Brewing:
  brew create [URL [--no-fetch]]
  brew edit [FORMULA...]
  open https://github.com/Homebrew/homebrew/wiki/Formula-Cookbook

Further help:
  man brew
  brew home

sabes que homebrew está instalado.

brew list

mostrará todos los paquetes que ha instalado, incluido libiconv

@ericbrooke Quiero decir, no vi el punto de hacer brew uninstall libiconv justo después brew tap homebrew/dupes cuando libiconv solo se encontraría después de tocar duplicados porque no está en el repositorio estándar. ¿Está ahí por si acaso, como cuando la instalación de homebrew se rompe de alguna manera?

Además, como sabe por la presencia de libiconv en "dupes", iconv es parte de OS X+Xcode y no debería necesitar agregarlo a través de brew.

No uso Homebrew, pero Homebrew no debería tocar nada en /usr/{include,lib}, ¿verdad? ¿O reinstalar libiconv a través de brew es un intento de recuperar los que estaban rotos?

En una nueva MacBook Pro con Vanilla Mountain Lion+Xcode+Command Line Tools instaladas, veo /usr/include/iconv.h y /usr/lib/libconv.so allí, así que me he estado preguntando cuál es la causa de la falta de esos los archivos podrían ser.

@lamont-granquist gracias.

Hice lo que has enumerado. Me encontré con un problema de permiso en:
No tiene permisos de escritura para el directorio /Library/Ruby/Gems/2.0.0.

Aparentemente, necesito arreglar mi rvm y, después de seguir el paso, se instaló y continué con el proceso de instalación de mi paquete.
rvm instalar 2.1.2
uso de rvm 2.1.2
actualización de gemas --sistema

@knu, sí, cada vez que actualizo el sistema operativo o restauro desde la máquina del tiempo, parece que el homebrew se desecha y tengo que reinstalar todo. esas instrucciones son lo más pesimistas posibles. si alguien tiene una instalación de xcode limpia y sana y libiconv está instalado correctamente en homebrew, entonces el último comando de instalación de gemas es todo lo que debería ser necesario.

Entonces, resulta que /usr/local/include/iconv.h #definirá iconv_open a libiconv_open y, por alguna razón, clang recoge el archivo de encabezado homebrew en /usr/local/include sobre /usr/include y luego intenta vincular contra /usr/lib/libiconv.dylib. El truco consiste en eliminar el archivo de encabezado iconv.h creado al forzar la vinculación de libiconv.

TL; DR: las instrucciones anteriores sobre cómo 'arreglar' este problema (incluido el mío) lo empeoran todo.

Entonces, las instrucciones actualizadas sobre cómo reparar la instalación de su mac:

Asegúrese de que Xcode y las utilidades de la línea de comandos estén instaladas correctamente. Esto soluciona los problemas en los que no tenía el archivo de encabezado /usr/include/iconv.h. Seleccione 'Obtener Xcode' en el cuadro de diálogo:

sudo xcode-select --install

Es posible que desee actualizar homebrew y libiconv en caso de que se haya quedado obsoleto (y en caso de que su libiconv en homebrew se haya instalado hace mucho, mucho tiempo). Esto es probablemente completamente opcional, ya que ahora no vincularemos contra homebrew libiconv:

brew update
brew tap homebrew/dupes
brew uninstall libiconv
brew install libiconv

No vincule libiconv, para que no anule el sistema libiconv (si esto le da 'no such keg' está bien, cualquier otro error y probablemente desee volver atrás y actualizar homebrew y libiconv):

brew unlink libiconv

Construir nokogiri:

gem install nokogiri

@lamont-granquist Muchas gracias!!

@lamont-granquist No sé por qué, pero en su último comentario, gem install nokogiri no funcionó para mí.
En cambio, después de seguir todos los pasos como:

brew update
brew tap homebrew/dupes
brew uninstall libiconv
brew install libiconv
brew unlink libiconv

gem install nokogiri -- --with-iconv-dir=/usr/local/opt/libiconv funcionó para mí.

Estoy en 10.9, con rvm, si esto ayuda.

@lamont-granquist ¡Gracias por la gran investigación! Creo que intentaré reproducir el problema y encontrar una "solución" para esto.

@SeanWangDev en algún lugar tiene otro iconv.h que se recoge primero y se usa. Podría ser el MacPorts en lugar del Homebrew.

Sí, así lo creo. hay uno en

/usr/local/Cellar/libiconv/1.14/include/iconv.h

otro en

/usr/include/iconv.h

La última es una versión anterior.
Gracias @lamont-granquist

/usr/include/iconv.h está bien, eso es parte de Xcode, el primero es homebrew que está escondido en el 'Bodega' que también está bien. Si no hay nada en /opt/local/include o lo que sea, supongo que /usr/lib/libiconv.dylib está dañado de alguna manera.

@lamont-granquist Esto está un poco fuera de mi alcance ahora. ¿Cómo podemos saber que libiconv.dylib está dañado?
Cuando hago ls -al /usr/lib/libiconv* , el resultado es este

xxxx  1 xxx  xxx       16 10  5  2013 /usr/lib/libiconv.2.4.0.dylib -> libiconv.2.dylib
xxxx  1 xxx  xxx  2088992 10  5  2013 /usr/lib/libiconv.2.dylib
xxxx  1 xxx  xxx       20 10  5  2013 /usr/lib/libiconv.dylib -> libiconv.2.4.0.dylib

Sí, eso se ve bien, este es el mío:

% ls -al /usr/lib/libiconv*
lrwxr-xr-x  1 root  wheel       16 Feb 26  2014 /usr/lib/libiconv.2.4.0.dylib@ -> libiconv.2.dylib
-r-xr-xr-x  1 root  wheel  2088992 Feb 26  2014 /usr/lib/libiconv.2.dylib*
lrwxr-xr-x  1 root  wheel       20 Feb 26  2014 /usr/lib/libiconv.dylib@ -> libiconv.2.4.0.dylib

¿Qué pasa con /opt/local/lib/libiconv.dylib o /opt/local/include/iconv.h ? Cualquiera de los dos podría causar problemas.

@lamont-granquist
No, no tengo el directorio /opt/. ¿Son estos los que estamos buscando?

-r--r--r--+ 1 User  admin  1052128  9  4 11:30 /usr/local/Cellar/libiconv/1.14/lib/libiconv.2.dylib
-rw-r--r--+ 1 User  admin  1658  9  4 11:22 /usr/local/Library/Taps/homebrew/homebrew-dupes/libiconv.rb
-r-xr-xr-x  1 root  wheel  2088992 10  5  2013 /usr/lib/libiconv.2.dylib

Los archivos iconv.h son solo estos dos:

/usr/local/Cellar/libiconv/1.14/include/iconv.h
/usr/include/iconv.h

No, eso está bien. Por lo que puedo ver, debería poder 'gem install nokogiri' sin ningún otro argumento ...

Solo quería agregar que gem install nokogiri -v 1.6.3.1 -- --with-iconv-dir=/usr/local funcionó bien para mí. Al usar el paquete tuve que hacer bundle config build.nokogiril --with-iconv-dir=/usr/local

@lamont-granquist Sí, gem install nokogiri funciona bien ahora. Pero esta condición es diferente. Esta vez, nokogiri ya estaba instalado previamente con 'gem install nokogiri ---with-iconv-dir=/usr/local/opt/libiconv'. Anteriormente, cuando no tenía nokogiri instalado, 'gem install nokogiri' no funcionaba.
¿Es posible que ejecutar 'gem install nokogiri ---with-iconv-dir=/usr/local/opt/libiconv' haya cambiado algunos archivos o agregado algunos archivos como libiconv.dylib o iconv.h ?

@SeanWangDev :+1:

OS X 10.9.4 Mavericks.
Chicos por favor ayúdenme. Intenté todas las formas que están arriba. Ninguno de ellos trabaja para mí. Apilé en gem install nokogiri con/sin argumentos, sigo recibiendo el error:

$ joya instalar nokogiri
Creación de extensiones nativas. Esto podría tomar un tiempo...
Construyendo nokogiri usando bibliotecas empaquetadas.
ERROR: Error al instalar nokogiri:
ERROR: no se pudo crear la extensión nativa de la gema.

/usr/local/rvm/rubies/ruby-2.0.0-p353/bin/ruby extconf.rb

Construyendo nokogiri usando bibliotecas empaquetadas.
comprobando iconv.h... * extconf.rb falló *
No se pudo crear Makefile debido a alguna razón, probablemente por falta de los necesarios
bibliotecas y/o encabezados. Consulte el archivo mkmf.log para obtener más detalles. Puedes
necesita opciones de configuración.

Opciones de configuración proporcionadas:
--with-opt-dir
--sin-opt-dir
--con-optar-incluir
--sin-optar-incluir=${opt-dir}/incluir
--con-opt-lib
--sin-opt-lib=${opt-dir}/lib
--con-hacer-prog
--sin-hacer-prog
--srcdir=.
--cuadernillo
--ruby=/usr/local/rvm/rubies/ruby-2.0.0-p353/bin/ruby
--ayuda
--limpio
--use-sistema-bibliotecas
--habilitar-estática
--disable-static
--con-zlib-dir
--sin-zlib-dir
--con-zlib-incluyen
--sin-zlib-incluir=${zlib-dir}/incluir
--con-zlib-lib
--sin-zlib-lib=${zlib-dir}/lib
--enable-cross-build
--disable-cross-build
/usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:434:in try_do': The compiler failed to generate an executable file. (RuntimeError) You have to install development tools first. from /usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:565:in try_cpp'
desde /usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:1044:en el bloque block in have_header' from /usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:895:in en el check_for'
desde /usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:340:en block (2 levels) in postpone' from /usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:310:in abierto'
desde /usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:340:en block in postpone' from /usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:310:in abierto'
de /usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:336:in postpone' from /usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:894:in check_for'
de /usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:1043:in have_header' from extconf.rb:103:in have_iconv?'
de extconf.rb:148:en block (2 levels) in iconv_prefix' from extconf.rb:90:in preserve_globals'
de extconf.rb:143:en block in iconv_prefix' from extconf.rb:120:in each_iconv_idir'
desde extconf.rb:137:in bloque iconv_prefix' from extconf.rb:428:in

'
desde extconf.rb:161:en block in process_recipe' from extconf.rb:154:in toque '
de extconf.rb:154:en process_recipe' from extconf.rb:423:in
'

Los archivos de gemas permanecerán instalados en /usr/local/rvm/gems/ruby-2.0.0-p353/gems/nokogiri-1.6.3.1 para su inspección.
Resultados registrados en /usr/local/rvm/gems/ruby-2.0.0-p353/gems/nokogiri-1.6.3.1/ext/nokogiri/gem_make.out

valide que tiene estos archivos:

% ls -la /usr/include/iconv.h
-rw-r--r--  1 root  wheel  7981 Jul 29 15:32 /usr/include/iconv.h
% ls -la /usr/lib/libiconv.*
lrwxr-xr-x  1 root  wheel       16 Feb 26  2014 /usr/lib/libiconv.2.4.0.dylib@ -> libiconv.2.dylib
-r-xr-xr-x  1 root  wheel  2088992 Feb 26  2014 /usr/lib/libiconv.2.dylib*
lrwxr-xr-x  1 root  wheel       20 Feb 26  2014 /usr/lib/libiconv.dylib@ -> libiconv.2.4.0.dylib

si no lo hace, use sudo xcode-select --install y/o vaya al sitio de descarga del desarrollador de Apple y desinstale y reinstale manualmente xcode y las utilidades de la línea de comandos de xcode hasta que tenga esos archivos instalados.

luego, si usa homebrew, actualice su homebrew y unlink el libiconv

brew update
brew tap homebrew/dupes
brew uninstall libiconv
brew unlink libiconv
brew install libiconv

valide que no tiene /usr/local/include/iconv.h:

% ls -la /usr/local/include/iconv.h
ls: /usr/local/include/iconv.h: No such file or directory

también valide que no tiene /opt/local/include/iconv.h

% ls -la  /opt/local/include/iconv.h
ls: /opt/local/include/iconv.h: No such file or directory

si tiene ese archivo, entonces tiene iconv instalado desde macports, idealmente se desharía de esto.

entonces intenta:

gem install nokogiri
gem install nokogiri -- --with-iconv-dir=/usr
gem install nokogiri -- --with-iconv-dir=/usr/local/opt/libiconv
gem install nokogiri -- --with-iconv-dir=/opt/local

(detente cuando encuentres el que funciona)

si todo lo demás falla:

brew link --force libiconv
gem install nokogiri -- --with-iconv-dir=/usr/local

algo ahí debería funcionar.

@lamont-granquist: +1:

@lamont-granquist Gracias por sus instrucciones, entiendo lo que está sucediendo y comencé a trabajar en una solución. Sin embargo, todavía no puedo reproducir el problema en ninguna de mis Mac, por lo que no hay forma de confirmar si funciona una solución. ¿Puede proporcionar los pasos para la reproducción?

Bueno, he tenido este MBP durante 3 años y después de 2 actualizaciones del sistema operativo y al menos 3 restauraciones de TM, mi /usr/include/iconv.h había desaparecido de alguna manera. Así que destruir ese archivo puede causar el problema. La solución es volver a instalar xcode y las herramientas de línea de comandos correctamente.

Además, al depurar esta cosa, la gente sugiere hacer 'brew link libiconv --force' para que se instale en /usr/local/include/iconv.h, aunque hay grandes advertencias cuando haces 'brew install libiconv ' y 'brew link libiconv' que esta es una mala idea. El problema es que puede tomar ese iconv.h mientras toma el sistema /usr/lib/libiconv.dylib y eso tiene un conflicto de inmediato sobre iconv_open() vs libiconv_open() y falla al compilar porque son diferentes versiones.

No estoy seguro de que haya nada que arreglar en esos casos. El problema es realmente destrozar su sistema operativo y necesitar volver a ponerlo en una forma más prístina.

Hay una cosa que no entiendo y es por eso que el sistema de compilación de nokogiri encontrará archivos /opt/local/include/iconv.h instalados en MacPorts. No uso MacPorts, así que no lo he depurado, pero está causando problemas similares a cuando homebrew tiene iconv.h vinculado directamente a /usr/local/include. Si se pudiera hacer que nokogiri dejara de hacer eso, ayudaría a las personas que tienen libiconv instalado desde MacPorts.

$ ls -la /usr/include/iconv.h

-rw-r--r-- 1 rueda raíz 7981 11 de septiembre 11:32 /usr/include/iconv.h

ls -la /usr/lib/libiconv.*
lrwxr-xr-x 1 rueda raíz 16 de septiembre de 11 01:03 /usr/lib/libiconv.2.4.0.dylib -> libiconv.2.dylib
-r-xr-xr-x 1 rueda raíz 2088992 11 de septiembre 01:02 /usr/lib/libiconv.2.dylib
lrwxr-xr-x 1 rueda raíz 20 11 de septiembre 01:03 /usr/lib/libiconv.dylib -> libiconv.2.4.0.dylib

actualización de cerveza
Homebrew actualizado de 45e07c0e a e0dee399.
==> Fórmulas actualizadas
android-ndk go lockrun pazpar2
apache-spark h2 mpd pktanon
Gearman juju-inicio rápido ossp-uuid

$ brew tap homebrew/dupes
Advertencia: ¡Ya tocado!

$ brew desinstalar libiconv

Desinstalando /usr/local/Cellar/libiconv/1.13.1...

Error: Permiso denegado - /usr/local/Cellar/libiconv/1.13.1/bin/iconv

me da error de permiso en ese paso

necesita corregir todos sus permisos en /usr/local

cualquiera que sea su inicio de sesión, debe corregir los permisos para que root no posea archivos homebrew en /usr/local:

mi nombre de usuario es 'lamont' que puedo encontrar con el comando id :

% id -nu
lamont

para arreglar las permanentes, haría:

% sudo chown -R lamont /usr/local

Sin embargo, debes tener mucho cuidado con ese comando y verificar que hayas escrito todo correctamente y que hayas obtenido el nombre de usuario correcto.

@lamont-granquist ¿El paquete libiconv de Homebrew no instala /usr/local/lib/libiconv.dylib mientras coloca /usr/local/include/iconv.h? Lo que no entiendo es si /usr/local/include/iconv.h se recoge por qué /usr/local/lib/libiconv.dylib no está al vincular. Por lo general, cuando -I/usr/local/include está en CPPFLAGS, -L/usr/local/lib debería estar en LDFLAGS.

En cuanto a la ruptura del entorno, Nokogiri podría al menos sugerir (re)instalar las herramientas de línea de comandos cuando falte /usr/include/iconv.h en OS X.

preparar desvincular libiconv
Error: No existe tal barril: /usr/local/Cellar/libiconv

Ignoré el mensaje y seguí los siguientes pasos. Sin éxito

@knu sí, investigué eso y creo que me perdí en el tortuoso laberinto de mkmf.rb.

@Ilovebarca rm -f /usr/local/include/iconv.h podría ayudar

@lamont-granquist
no, no ayudó. Por cierto, muchas gracias por intentar ayudarme.
Eso es una locura, soy nuevo en Mac y estoy empezando a odiarlo :))

Voy a hacer algunos cambios en el proceso de detección de iconv y agregaré una comprobación de /usr/include/iconv.h faltante en OS X a extconf.rb. ¡Aquí hay un trabajo en progreso, y los probadores son bienvenidos!

He estado pasando por problemas de github, stack exchange, google, etc. y lo único que ha funcionado hasta ahora ha sido la sugerencia de @lamont-granquist . Configuración usando:

OS X 10.9.5
rbenv

Entiendo que muchas personas de alguna manera rompen su entorno OS X y ni siquiera lo notan. Un problema es que faltan las herramientas de línea de comandos de Xcode y el otro es Homebrew. La próxima versión de nokogiri intentará detectar dicha rotura antes de ingresar a la compilación y advertir al usuario al respecto.

¡Gracias por su apoyo!

Gracias @lamont-granquist, he estado luchando con este problema durante una semana y finalmente su solución de reinstalar libiconv funciona... ¡es un alivio!

@jomz funciona en osx 10.10. gracias :+1:

Desde una nueva instalación de 10.10 hoy:

xcode-select --install
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew doctor
brew install ruby
source /etc/profile
gem install nokogiri

Esto instaló la versión 2.1.5p273 de ruby ​​y nokogiri 1.6.4.1. Presumiblemente, podría forzar la instalación de estas versiones a través de homebrew y rubygems.

Desde una instalación 10.10 actualizada desde 10.9 con homebrew y ruby ​​ya instalados:

brew install libxml2 libxslt
gem install nokogiri -- --use-system-libraries

No estoy seguro de que fuera necesario volver a instalar libxml2 y/o libxslt, pero esto funcionó para mí.

Creo que hemos capturado esto en el tutorial de instalación actualizado aquí:

http://www.nokogiri.org/tutorials/installing_nokogiri.html

Si no es así, házmelo saber y volveré a abrir.

¡Gracias por el enlace del tutorial! Funcionó para mí cuando especifiqué las rutas de archivo, como se describe en "Uso de instalaciones libxml2 / libxslt no estándar". (Parece que /usr/bin en OS X 10.6.8 se considera una ubicación no estándar para las bibliotecas del sistema).

Para encontrar las rutas de los archivos, utilicé los comandos de Terminal which xml2-config y which xslt-config . ¿Quizás actualice el tutorial para sugerir hacer esto?

¿Fue útil esta página
0 / 5 - 0 calificaciones