Siempre resolví los problemas de instalación de Nokogiri siguiendo la documentación en el tutorial " Instalación de Nokogiri ".
Pero esta vez, incluso después de instalar todas las dependencias, no se ha instalado Nokogiri. Obtuve el siguiente error:
libxml2 is missing. please visit <http://nokogiri.org/tutorials/installing_nokogiri.html>
Intenté instalarlo especificando los directorios libxml2 y libxslt:
sudo gem install nokogiri -- --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib --with-xslt-dir=/usr/
pero devolvió el mismo error.
Seguí todos los demás artículos relacionados de Stack Overflow y ninguno ayudó. ¿Alguien tiene una solución?
ruby-on-rails
ruby
rubygems
Rohit A.
fuente
fuente
Respuestas:
Primero, instale las dependencias:
Si aún recibe el error, es posible que le falte una cadena de herramientas del compilador:
Obtendrá el error "libxml2 is missing" si le falta una cadena de herramientas de compilación (al menos me encontré con este problema en Debian Lenny).
La prueba de compilación Nokogiri compila un archivo de encabezado libxml2 para verificar que está presente, sin embargo, no diferencia entre "falta libxml2" y "falta un compilador para probar libxml2".
fuente
Es posible que necesite instalar ambos paquetes
fuente
En Mac OS X (Mavericks), la instalación de las bibliotecas con
brew
y la configuraciónNOKOGIRI_USE_SYSTEM_LIBRARIES=1
antes de instalar la gema fue el truco para mí.Resumiendo:
Si se instaló previamente, desinstale la gema:
Homebrew utilizar para instalar
libxml2
,libxslt
ylibiconv
:Instale la gema especificando las rutas a las bibliotecas con las que se vinculará:
fuente
$ NOKOGIRI_USE_SYSTEM_LIBRARIES=1 gem install nokogiri
el trucobrew install libxml2 libxslt homebrew/dupes/libiconv
para que funcione--with-xml2-include="/usr/local/opt/libxml2/include/libxml2"
para que elgem install nokogiri
comando funcione. De lo contrario, se mostrarálibxml2 version 2.6.21 or later is required!
(mi versión libxml2 es 2.9.2)Acabo de tener el mismo problema en Fedora 13. Después de una búsqueda frustrante y sin éxito para hacer
funciona para mí, pude instalarlo y evitar el error libxml2 a través de
yum
.Simplemente instale la gema vía en
yum
lugar delgem
comando:Esto me ayudó a encontrar la respuesta correcta para Fedora y, como estoy usando RVM para la administración de paquetes de Ruby,
atraerá todas las gemas y dependencias de Ruby al sistema, no a mi entorno RVM, y en mi experiencia eso lleva a una experiencia muy frustrante y humillante.
Entonces, tomando tu hallazgo de la gema Nokogiri yum puedes usar:
y obtener una lista de las dependencias para rubygem-Nokogiri que me mostró las bibliotecas que faltaban. Después de eso corrí:
Ahora Nokogiri compila en las instalaciones de Fedora y Nokogiri. ¡Oh, necesitamos los encabezados para compilar Nokogiri de las bibliotecas de desarrollo!
fuente
En Mac OS X (Mavericks) si ninguna de estas soluciones funciona, intente:
o
dependiendo de la arquitectura de su sistema.
fuente
Por lo general, necesita archivos de desarrollo para construir gemas. Tratar:
(Acabo de ver que Eric sugirió lo mismo en un comentario).
fuente
Pude instalar esto con Chocolatey , Windows 8.1 x64 y DevKit x64.
Deberá verificar que el número de versión en las rutas sea correcto.
Es posible que deba agregar el repositorio NuGet de Microsoft:
fuente
...\x64\Release\dynamic\cdecl
.chocolatey sources add -name NuGet -source "https://go.microsoft.com/fwlink/?LinkID=230477"
Será:
en servidores RHEL.
fuente
En macOS, ninguno de los anteriores / inferiores realmente funcionó para mí hasta que proporcioné explícitamente la ruta XCode libxml2 a
--with-xml2-include
.fuente
Pude instalar Nokogiri 1.6.5 en Fedora 20 haciendo:
Luego corriendo:
fuente
Para cualquier persona que experimente este problema, lo resolví ejecutando este comando dentro del directorio del proyecto
gem install nokogiri -- --use-system-libraries
Actualización: me encontré con esto nuevamente e intenté actualizar la gema que funcionó para mí ...
gem update nokogiri
fuente
¿Has intentado instalar libxml2? No de rubygems, sino a través del proceso de instalación estándar para su sistema operativo. En Ubuntu / Debian, por ejemplo:
En cualquier versión reciente de OS X ya debería estar instalado.
fuente
Para los usuarios de OSX, si ya han tenido éxito al instalar Nokogiri antes, aún tienen errores al instalarlo, digamos, usando una nueva versión de Ruby que han agregado y ese error que incluye un mensaje como:
Esto podría ser indicativo de que se realizó una actualización de XCode a través de la App Store, ya sea manual o automáticamente, y que no la ha abierto desde entonces.
Si es así, debería poder abrir XCode, aceptar la nueva licencia y luego instalar Nokogiri con éxito.
fuente
En Mac OS X Yosemite, mi error fue que intenté usar
sudo gem install
cuando es una regla general no usar privilegios de superusuario al instalar gemas.En mi caso, trató de modificar la instalación del sistema de Ruby, y esa no es una buena idea. Instalé rbenv, instalé Ruby 2.2.2 a través de él y lo configuré como
global
, que es un término de la documentación de rbenv. Después de eso, Nokogiri podría instalarse con un simpleNo fueron necesarios hacks ni soluciones alternativas, solo un entorno correctamente configurado; Nokogiri hace el resto perfectamente.
fuente
sudo
está bien SI comprende cómo funciona, dónde surtirá efecto, por qué los archivos que se instalan o actualizan deben instalarse y cómo deshacer la acción si falla. De lo contrario, usar una caja de arena como rbenv o RVM es una REALMENTE buena idea.Pude instalar vagrant-awe siguiendo la publicación anterior pero usando el comando de la siguiente manera:
fuente
Para Windows x64:
Para obtener más información, consulte este hilo: https://github.com/sparklemotion/nokogiri/issues/864
fuente
Pude instalar Nokogiri ejecutando los siguientes paquetes:
fuente
=== TLDR ===
Como indican las instrucciones , construya Ruby con el último compilador de clang, o al menos la misma versión que Rubygems usará para compilar las extensiones nativas de Nokogiri libxml y libxsl.
Si usé RVM, construir desde la fuente con la
--with-ggc=clang
bandera fue lo que lo hizo por mí:Reemplace
2.2
con la versión que desee.--with-gcc=clang
asegura las construcciones RVM desde la fuente y usa el sonido metálico para hacerlo; de lo contrario, RVM puede ser un Ruby binario preconstruido, que es lo que me hizo tropezar.Luego, instale Nokogiri de forma normal usando Bundler o Rubygems.
=== EN PROFUNDIDAD ===
Luché con esto por un tiempo.
gem install nokogiri
me dio:Cavando en
mkmf.log
vi:Nokogiri suministra sus propios libxml y libxsl (a partir de 1.6.4). La firma definida en la copia local de Nokogiri de parser.h (que se encuentra en el directorio de instalación de gemas) es:
Así que no sabía cómo la llamada al método en el uso herméticamente sellado del archivo conftest.c no podía coincidir con el archivo de encabezado para parser.h.
Cuando me di cuenta de que probablemente había instalado un Ruby binario que eliminé y reinstalé usando
--with-gcc=clang
(para forzar la compilación y usar clang) y el problema se resolvió:No estoy exactamente seguro de por qué eso funciona como el encabezado libxml del sistema
/usr/include/libxml2/libxml/parser.h
tiene la misma firma que la copia local de Nokogiri.Es raro, pero funcionó. Solo asegúrate de compilar un Ruby con sonido metálico.
fuente
Cambia tu versión con ella.
fuente