ruby macos nokogiri libxml2 libiconv

ruby - ¿Por qué la instalación de Nokogiri en Mac OS falla con la ausencia de libiconv?



macos libxml2 (30)

He intentado instalar Nokogiri en Mac OS 10.9.3 y, sea lo que sea, la instalación falla al final con el siguiente mensaje de error:

$ sudo gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.1/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 --with-iconv-include=/usr/local/Cellar/libiconv/1.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib Building native extensions with: ''--with-xml2-include=/usr/local/Cellar/libxml2/2.9.1/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 --with-iconv-include=/usr/local/Cellar/libiconv/1.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib'' 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.9.1/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 --with-iconv-include=/usr/local/Cellar/libiconv/1.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib 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 ----- libiconv is missing. please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies. ----- *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. Provided configuration options: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby --help --clean --use-system-libraries --enable-static --disable-static --with-zlib-dir --without-zlib-dir --with-zlib-include --without-zlib-include=${zlib-dir}/include --with-zlib-lib --without-zlib-lib=${zlib-dir}/lib --enable-cross-build --disable-cross-build Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/nokogiri-1.6.2.1 for inspection. Results logged to /Library/Ruby/Gems/2.0.0/gems/nokogiri-1.6.2.1/ext/nokogiri/gem_make.out

Después de seguir una gran cantidad de ayuda encontrada en la web, incluyendo la construcción e instalación de libxml2 y libxslt usando brew y compilando libiconv desde las fuentes (como se describe en " Instalación de Nokogiri "), el error sigue siendo el mismo.

Al intentar ejecutar la instalación de Nokogiri, parece que libxml2 y libxslt están bien, pero no libiconv.

¿Alguien con un mejor conocimiento de estas cosas sabe cómo instalar Nokogiri?


Al buscar en el archivo mkmf, aparece que nokogiri (o gema, no sé) intenta encontrar dependencias en / op / local /. Para mí, no es el camino correcto para buscarlos.

Obligar a nokogiri a encontrar las librerías en el lugar correcto (uso homebrew) me funcionó:

$ gem install nokogiri -- --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8/

Tal vez hay algo que arreglar en nokogiri ...

HTH,


Asumiendo que instaló libxml2 y libxslt con MacPorts, entonces aún podría estar recibiendo este error debido a una falta de coincidencia en el orden de incluir rutas y rutas de enlace utilizadas por la llamada a have_func (''iconv_open'', ''iconv.h'')

Solución simple (parche): eliminar libiconv. * En / usr / local / lib


Busque en el archivo mkmf.log en el directorio de compilación de la gema (por ejemplo, /Library/Ruby/Gems/1.8/gems/nokogiri-1.4.4/ext/nokogiri/mkmf.log). Eso tiene mucha más información. En mi caso, cuando pulsé esto fue que Nokogiri agrega específicamente / opt / local / lib a la ruta de búsqueda de la biblioteca y GNU Backgammon había instalado allí un libiconv incompatible.


De acuerdo con la documentación, a partir de OSX 10.9 y Homebrew 9.5+, es probable que le falten las herramientas de desarrollo.

Instalación de Nokogiri

Solución de problemas

Si tiene problemas para mencionar que falta libiconv, tiene un aspecto similar a este:

Installing nokogiri (1.6.2.1) Building nokogiri using packaged libraries. Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. /usr/local/rvm/rubies/ruby-2.0.0-p0/bin/ruby extconf.rb 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 ----- libiconv is missing. please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies. ----- *** extconf.rb failed ***

Entonces probablemente te estás perdiendo las herramientas de desarrollador adecuadas. Esta es una solución realmente fácil:

brew unlink gcc-4.2 # you might not need this step gem uninstall nokogiri xcode-select --install gem install nokogiri

Esto se verifica trabajando en OSX 10.9 con el compilador clang de xcode.


En mi caso, (como con scotchi) la compilación falló debido a una biblioteca de iconos incompatible en / opt / local / lib. Por defecto, el proceso de compilación de Nokogiri mira primero / opt / local. Para obligarlo a usar un directorio de instalación diferente, / usr / local, por ejemplo, haga lo siguiente:

gem install nokogiri -- --with-xml2-lib=/usr/local/lib --with-xml2-include=/usr/local/include/libxml2 --with-xslt-lib=/usr/local/lib --with-xslt-include=/usr/local/include


En primer lugar, asegúrese de seguir la guía de instalación en nokogiri: http://nokogiri.org/tutorials/installing_nokogiri.html

Después de haber seguido la guía todavía tenía este problema. Así es como lo resolví:

Antes que nada, instalé iconv usando homebrew: brew install iconv

Luego desinstalé ruby, afortunadamente esto es muy fácil con rvm:

rvm uninstall 1.9.2

Luego tuve que reinstalar Ruby con las siguientes opciones:

CC=gcc-4.2 rvm install 1.9.2-p290 --with-iconv-dir=/usr/local/Cellar/libiconv/1.13.1

Luego creo un gemset con la nueva versión de ruby:

rvm use 1.9.2@coolproject

Entonces finalmente puedo instalar nokogiri como este:

gem install nokogiri -v=1.4.4 -- --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


Esta publicación de blog propone instalar libiconv manualmente.

Posteriormente, nokogiri se puede instalar con una serie de conmutadores que le indican dónde encontrar libiconv (consulte la publicación del blog).

Como nota al margen: Después de instalar nokogiri, logré instalar gollum (cuya instalación también falló porque no pudo encontrar iconv). Ahora bien, todavía estoy enfrentando problemas, porque cuando inicio gollum, Python se cuelga.


Este funcionó para mí

sudo env ARCHFLAGS = "- arch x86_64" instalación gema nokogiri: 1.6.6.2 - --use-system-libraries --with-xml = / usr / local / Cellar / libxml2 / 2.9.3 / --with-iconv- dir = / usr / local / Cellar / libiconv / 1.14


Esto funciona para mí:

gem install nokogiri -- --use-system-libraries

Si está usando Bundler, dígale que use la opción:

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

ref


Estoy usando ... OS X 10.9.4 Homebrew 0.9.4

Aquí está mi resumen de este hilo para instalar con éxito nokogiri, solucionando la falta de libiconv.

Instale Homebrew Homebrew O actualice a la última usando el siguiente comando

brew update

Instalar libxml2 libxslt

brew install libxml2 libxslt

Enlace ambos libxml2 libxslt

brew link libxml2 libxslt

Si recibes una advertencia para usar --force, solo usa el comando a continuación

brew link --force libxml2 libxslt

Instale las herramientas de comando xCode para permitirle instalar libiconv

xcode-select --install

Instalar libiconv

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 make sudo make install

Paso final, instala 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


Estuve peleando con Nokogiri por un tiempo hoy en OS X 10.10 Yosemite

Mi entorno estaba en mal estado por alguna razón.

which bundle y which gem me daban /usr/bin/bundle y /usr/bin/gem lugar de ~/.rbenv/shims/gem

Lo que me ayudó a corregirlo fue sudo rm -i /usr/bin/gem /usr/bin/bundle

Después de eso I: 1. volví a mi directorio de proyectos 2. desinstalé el dependiente 3. (re) brew install libxml2 libiconv libxslt dependientes: hice una brew install libxml2 libiconv libxslt 4. instalé mi versión de ruby ​​fresh (con rbenv) 5. hice gem install bundler 6. y la bundle install ejecutó sin problemas.

Nokogiri estaba bien después de eso.

Para referencia:

╰─% cat .bundle/config --- BUNDLE_PATH: vendor/bundle BUNDLE_DISABLE_SHARED_GEMS: ''1'' BUNDLE_JOBS: 4 ╰─% which ruby bundle gem ~/.rbenv/shims/ruby ~/.rbenv/shims/bundle ~/.rbenv/shims/gem


Finalmente pude resolver este problema. Ninguna de las soluciones anteriores me lo arregló por completo.

Recibí este error al intentar gem install nokogiri en OSX Lion 10.7.2. En primer lugar, este error enmascara el problema real al decir que falta libiconv, porque obtendrá el mismo error incluso si nokogiri no puede encontrar libxslt o libxml2, que en mi caso no pudo.

Así que seguí las instrucciones en http://nokogiri.org/tutorials/installing_nokogiri.html en la sección Homebrew (ligeramente modificado para dar cuenta de una versión más actual de libxml2):

brew install libxml2 brew link libxml2 # install libxslt from source wget ftp://xmlsoft.org/libxml2/libxslt-1.1.26.tar.gz tar -zxvf libxslt-1.1.26.tar.gz cd libxslt-1.1.26 ./configure --prefix=/usr/local/Cellar/libxslt/1.1.26 --with-libxml-prefix=/usr/local/Cellar/libxml2/2.7.8 make sudo make install

En este punto, seguí las instrucciones en el sitio de nokogiri y probé

gem install nokogiri -- --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26

Sin embargo, esto aún no funciona porque al compilar libxslt desde el origen, instala la carpeta /include en un lugar original. Por lo tanto, debe especificar la lib e include carpetas por separado como se muestra a continuación:

gem install nokogiri -- --with-xslt-lib=/usr/local/Cellar/libxslt/1.1.26/lib --with-xslt-include=/usr/local/Cellar/libxslt/1.1.26/include/libxslt

Esto todavía no funcionaba (el mismo error de libiconv), así que traté de especificar las tres bibliotecas requeridas (libxslt, libxml2 y libiconv):

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

¡Ahora tengo un error diferente! Todavía era un error, pero al menos era diferente. El proceso de make falló con:

in /opt/local/lib/libz.1.dylib, file was built for unsupported file format which is not the architecture being linked (x86_64) for architecture x86_64

Uhh, ¿qué? Después de mucho buscar en Google, me encontré con esta publicación milagrosa: http://www.refresherate.com/2010/01/08/fixing-ld-warning-in-usrlocalliblibz-dylib-file-is-not-of-required-architecture/

Aparentemente, OSX Lion se envía con algunas versiones incorrectas de la biblioteca libz ( libz.dylib, libz.1.dylib, libz.1.2.4.dylib ) y deben reemplazarse con las últimas versiones del Xcode SDK. El artículo lo explica mejor de lo que puedo, así que lea el enlace de arriba para obtener instrucciones específicas.

Una vez que estos fueron reemplazados, corrí

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

de nuevo y todo estaba bien. Espero que esto ayude a alguien más.


Intenté muchas cosas, pero nada funcionó para mí. ¡Finalmente encontré la documentación del iconv y me salvó el día!


Intenta usar las bibliotecas del sistema. OSX viene con libiconv en versiones más nuevas, pero el script de instalación predeterminado parece tener un problema

gem install nokogiri -- --use-system-libraries

Editar: Si usa bundler, como lo menciona Geoff , puede hacer:

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


La solución de @Cory contiene la respuesta correcta, pero la solución en Mavericks es en realidad mucho más simple que la solución superior, por lo que solo realizo los pasos necesarios.

En Mavericks (OSX 10.9+):

Instalar las herramientas de línea de comandos de Xcode:

xcode-select --install

luego instala tu joya:

gem install nokogiri


Me encontré con esto, esta mañana ... después de una actualización a Mavericks. Hicimos muchas cosas Sin embargo, si alguien está teniendo este problema aquí hay algunas cosas que probar.

Ejecuté ''xcode-select --install'' y luego obtuve las herramientas de línea de comandos instaladas (sorprendió que esto no se actualizó en el sistema operativo). Ejecuté ''rvm implode'' (lo construiré una copia de seguridad más tarde).

Recopilamos juntos dos archivos de salida de error:

~ / .vagrant.d / gems / gems / nokogiri-1.6.3.1 / ext / nokogiri / gem_make.out

~ / .vagrant.d / gems / gems / nokogiri-1.6.3.1 / ext / nokogiri / tmp / x86_64-apple-darwin12.5.0 / ports / libxml2 / 2.8.0 / configure.log

Lo que parecía indicar que el compilador de c estaba usando una configuración sorprendente.

Ejecuté ''env''

Salida contenida:

... CXX=/usr/local/opt/apple-gcc42/bin/g++-4.2 ... CC=/usr/local/opt/apple-gcc42/bin/gcc-4.2 ...

Estos archivos no existían en el sistema de archivos ...

Después de todos estos cambios, se movió a una nueva ventana de terminal (para que todo estuviera fresco). La instalación de vagabunda-berkshelf (que a su vez instala nokogiri) funcionó bien.

NOTA: cuando se ejecutaba ''env'' en la ventana nueva, ya no había una configuración para CC o CXX ...

No estoy seguro de la parte clave de esto, o si el orden es importante, pero traté de recrear las partes que parecían tener un papel en hacer que esto funcionara.


Necesita actualizar su homebrew a 0.9

luego sigue estos pasos

brew install libxml2 libxslt brew link 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 make sudo make install sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2 gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.0/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.0/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib

Debería verificar la versión de la biblioteca de carpetas.


Recibí este problema cuando actualicé mi Mac OS a Yosemite. Pude resolver este problema haciendo:

xcode-select --install brew uninstall libiconv brew install libiconv gem install nokogiri


Resolví esto en Yosemite corriendo Ruby 2.1.4 por

  1. asegúrese de tener xCode 6.1 instalado, luego
  2. xcode-select --install , luego
  3. En AppStore, haga clic en actualizaciones e instale la versión más reciente de las herramientas de línea de comandos (que aparentemente xcode-select --install does''t xcode-select --install - suspiro)
  4. luego la bundle install funcionó normalmente.

También hice una brew install libiconv también, pero no estoy convencido de que se necesitara un paso.


Seguí las instrucciones de la página de instalación de nokogiri y también instalé las herramientas xcode. Pero todavía no funcionó para mí.

Luego vi que el comando brew install libxml2 libxslt genera lo siguiente (entre otras cosas diferentes):

To allow the nokogiri gem to link against this libxslt run: gem install nokogiri -- --with-xslt-dir=/usr/local/opt/libxslt

Entonces, ejecuto esto y nokogiri se instaló con éxito.


Solo agregué mi voz a la multitud, pero mkmf.log dijo algo acerca de no poder encontrar símbolos para la arquitectura x86_64. Me encontré con esta solución:

sudo env ARCHFLAGS="-arch x86_64" gem install nokogiri -- --use-system-libraries

Puede que no resuelva nada para el solicitante original, pero esto puede ayudar a alguien.

Nota al margen: nokogiri ha sido mi mayor barrera para usar aplicaciones ruby. Cada vez que alguien depende de una versión diferente, tengo que descubrir cómo construirla. Y mi problema es diferente cada vez.


También puedes hacer esto en Mavericks:

joya instalar nokogiri - --use-system-libraries = true --with-xml2-include = / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Desarrollador / SDKs / MacOSX10.9.sdk / usr / include / libxml2

Solo asegúrate de tener xcode instalado


Tuve el mismo problema. Desafortunadamente, la " Instalación de Nokogiri " no cubre los problemas de Iconv. Así es como resolví el problema.

Primero instala homebrew , te hará la vida más fácil. Si ya lo tienes instalado, asegúrate de obtener las últimas fórmulas actualizándolas así:

brew update

Nota : En OSX 10.9+ puede que necesite instalar las herramientas de comando xCode para permitirle instalar libiconv.

xcode-select --install

luego instala una versión más nueva de libiconv

brew install libiconv

luego, vincula tus nuevas bibliotecas de iconv:

brew link libiconv

luego instala tu joya

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


Tuve problemas similares en Mountain Lion. Resulta que había instalado libiconv vía paquete rvm previamente y esto ya no es necesario para ruby ​​1.9.3 / Mountain Lion / nokogiri.

Siguiendo el consejo de https://rvm.io/packages/ , eliminé mi directorio $ rvm_path / usr y reconstruí ruby ​​1.9.3. Después de eso, instalar nokogiri fue una simple instalación de gemas. ¡Sin problemas con las instalaciones de brew / macports / manual source!


Tuve que instalar gcc primero antes de ejecutar ./configure --prefix=/usr/local/Cellar/libiconv/1.13.1


Tuve un problema similar y la respuesta aceptada solía funcionar para mí. Ahora, sin embargo, he estado viendo un nuevo mensaje de error donde gmkdir un comando gmkdir como en esta pregunta:

gem install nokogiri -v ''1.5.11'' falló debido a make: / usr / local / bin / gmkdir: No existe ningún archivo o directorio

Lo que funcionó para mí fue primero una pequeña limpieza:

brew uninstall libiconv brew uninstall libxml2 brew uninstall libxslt

Y luego brew unlink libiconv y todo lo que necesites para desvincular (verifica con brew doctor ). Luego, las dos líneas mágicas (copiadas de la respuesta vinculada):

brew install coreutils gem install nokogiri


libiconv se eliminó de Homebrew 0.9. Ahora se recomienda compilar libiconv desde el código fuente, luego haga referencia a la instalación cuando instale la gema nokogiri. Consulte las instrucciones de instalación de Nokogiri en la sección Homebrew 0.9 en la página de instalación de Nokogiri


HOMEBREW USUARIOS

Solución correcta para solucionar este problema si está utilizando homebrew:

xcode-select --install

Elija "Obtener Xcode" en el cuadro de diálogo.

brew unlink libiconv gem install nokogiri

El paso de selección de xcode corrige su instalación de Xcode y la instalación de Xcode Command Line Utils. Descubrí que no tenía /usr/include/iconv.h debido a algún tipo de problema con las actualizaciones de O / S o las restauraciones de las copias de seguridad. Si no tiene ese archivo de cabecera y /usr/lib/libconv.dylib después de ejecutar xcode-select, lo más probable es que necesite arrastrar Xcode desde la carpeta de la aplicación a la papelera y reinstalar y luego descargar manualmente las herramientas de línea de comandos para Xcode. de https://developer.apple.com/downloads/index.action e instalar eso.

Luego necesitas desvincular el libiconv de homebrew. No necesitas esto Y clang realmente tomará /usr/local/include/iconv.h sobre /usr/include/iconv.h y # definirá iconv_open en libiconv_open pero luego enlazará contra /usr/lib/libiconv.dylib que no tiene libiconv_open que es lo que hace que las fallas de mkmf encuentren libiconv. Lo que debe hacer es eliminar el enlace de iconv.h para que nokogiri no lo encuentre.

Entonces solo construye nokogiri normalmente.

Para los nuevos usuarios, todo lo que debe hacer es instalar xcode con xcode-select e instalar nokogiri, pero si ha encontrado esta pregunta, es probable que tenga una instalación fallida y no una nueva instalación de Mavericks.

Algunas de las otras respuestas aquí son definitivamente incorrectas. La mayoría de ellos intenta utilizar libiconv fuera de homebrew, que es completamente innecesario. Las respuestas que brew link libiconv están causando el problema en el que clang se confunde e intenta leer un archivo de cabecera homebrew y un enlace contra las bibliotecas del sistema. Las respuestas que sugieren --use-system-libraries son pobres porque nokogiri debe vincularse con sus bibliotecas libxml2 y libxslt combinadas porque otras versiones de esas bibliotecas son incompatibles con ella. Las respuestas que quiere que recopile de las fuentes son demasiado complicadas.

TL; DR:

  • Actualiza y / o repara tu instalación de Xcode
  • Desenlace su libiconv homebrew ya que tratar de usar eso solo causa problemas
  • Construye nokogiri normalmente

USUARIOS RVM

Las instalaciones antiguas de RVM pueden tener un escondite libiconv en sus directorios rvm en algún lugar que están en conflicto con las bibliotecas de su sistema. Consulte https://.com/a/11809261/506908 para obtener más información.

MacPorts USUARIOS

Si tiene /opt/local/lib/libiconv.dylib, nokogiri agrega esa ruta a la lista de directorios que busca y encontrará que la instalación de MacPorts es similar a cómo recoge el libiconv homebrew y entra en conflicto con las bibliotecas del sistema. Puedes probar:

sudo port uninstall libiconv

Si eso falla debido a las dependencias, entonces puede intentar vincular directamente con la versión de MacPorts (no probado):

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


$ gem install iconv # works but it is missing an iconv.so file in ruby 2.0.0-p247 $ ls -1 2.0.0-p0/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/*/*/*.so 2.0.0-p0/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/ext/iconv/iconv.so* 2.0.0-p0/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/lib/iconv/iconv.so* $ ls -1 2.0.0-p247/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/*/*/*.so 2.0.0-p247/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/ext/iconv/iconv.so*

TENGA EN CUENTA el archivo /lib/iconv/iconv.so FALTA en 2.0.0-p247 que está presente en la instalación de las gemas 2.0.0-p0.

$ rbenv version 2.0.0-p247 (set by /home/XXX/tmp/.ruby-version) $ rbenv which gem /home/XXX/.rbenv/versions/2.0.0-p247/bin/gem $ gem --version 1.8.25 $ rbenv which pry /home/XXX/.rbenv/versions/2.0.0-p247/bin/pry $ pry [1] pry(main)> require ''iconv'' LoadError: cannot load such file -- iconv/iconv.so from /home/XXX/.rbenv/versions/2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require''

Copie el archivo

$ pushd ~/.rbenv/versions/ $ cp 2.0.0-p247/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/ext/iconv/iconv.so 2.0.0-p247/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/lib/iconv/

¡AHORA FUNCIONA!

$ pry [1] pry(main)> require ''iconv'' => true


$ gem install nokogiri -- --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8/

Igual que el anterior, esta es la solución para homebrew y el uso de gem install (aplicar cambios depende de su versión)

sin embargo, si usa Gemfile y bundle install, debe aplicar la configuración del paquete antes de instalar, aquí el código

$ bundle config build.nokogiri --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8/ --with-iconv-dir=/usr/local/Cellar/libiconv/1.14

de nuevo, aplicar cambios depende de tu versión

Espero que esto te ayudará.

crédito: https://gist.github.com/1344331