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

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 comstackndo libiconv desde las fonts (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?

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 

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 

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 comstackr 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.

Solo agregué mi voz a la multitud, pero mkmf.log dijo algo acerca de no poder encontrar símbolos para la architecture 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.

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 http://brew.sh/ 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 

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.

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

Al buscar en el archivo mkmf, aparece que nokogiri (o gem, 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,

libiconv se eliminó de Homebrew 0.9. Ahora se recomienda comstackr libiconv desde el código fuente, luego haga referencia a la instalación cuando instale la gem 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

Busque en el archivo mkmf.log en el directorio de comstackción de la gem (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.

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

 $ 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

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 gems. ¡Sin problemas con las instalaciones de brew / macports / manual source!

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

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 

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.

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 fonts 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://stackoverflow.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 

Este funcionó para mí

sudo env ARCHFLAGS = “- arch x86_64” instalación gem 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

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).

Recostackmos 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 comstackdor 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.

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 comstackdor clang de xcode.

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 

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 

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 

En mi caso, (como con scotchi) la comstackción falló debido a una biblioteca de icons incompatible en / opt / local / lib. Por defecto, el proceso de comstackció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 

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.

 $ 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 gems 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 

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

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.

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 

árbitro

Intereting Posts