que instalar gemas ruby gem install nokogiri

ruby - instalar - bundler que es



¿Cómo instalar Nokogiri Ruby gem con mkmf.log diciendo que no se encontró libiconv? (5)

No se pudo crear Makefile debido a alguna razón, probablemente la falta de las bibliotecas y / o encabezados necesarios .

Probablemente le falten los encabezados zlib que se requieren para el indicador -lz para compilar las fuentes correctamente. Instalar en Linux por:

sudo apt-get install libz-dev

Si falta libiconv, intente instalar el libiconv-hook-dev que tiene archivos de encabezado de libiconv-hook , por ejemplo

sudo apt-get install libiconv-hook1 libiconv-hook-dev

En OS X, intente instalar herramientas de desarrollo a través de: xcode-select --install .

Si todavía hay un problema, revise el archivo mkmf.log para obtener detalles más específicos sobre su error.

En Ubuntu, pruebe el siguiente combo de corrección de dependencia:

sudo apt-get install gcc ruby-dev libxslt-dev libxml2-dev zlib1g-dev

Estoy instalando la gema Ruby Nokogiri y encontrando el error a continuación.

¿Cómo diagnosticar esto y resolverlo?

# gem install nokogiri Building native extensions. This could take a while... ERROR: Error installing nokogiri: ERROR: Failed to build gem native extension. ... /opt/ruby/1.9.3-p194/bin/ruby extconf.rb checking for libxml/parser.h... *** 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. ... /opt/ruby/1.9.3-p194/lib/ruby/1.9.1/mkmf.rb:381:in `try_do'': The compiler failed to generate an executable file. (RuntimeError) You have to install development tools first. from /opt/ruby/1.9.3-p194/lib/ruby/1.9.1/mkmf.rb:506:in `try_cpp'' ...


Instalación del sitio web de Nokogiri

''Instalar Nokogiri'' es un sitio web dedicado a instalar Nokogiri en las plataformas principales. Aquí hay un extracto sobre la instalación de Nokogiri en Ubuntu:

Debido a que Nokogiri necesita compilarse y vincularse dinámicamente con libxml2 y libxslt, se ha ganado la reputación de ser complicado de instalar.

A partir de Nokogiri 1.6, el código fuente libxml2 y libxslt se incluye con Nokogiri y se compila en el momento de la instalación de gemas. Las instrucciones en este documento deberían funcionar para todas las versiones 1.6.4 y posteriores.

Ubuntu / Debian

La instalación debe Just Work ™ en Ubuntu y Debian utilizando los libxml2 y libxslt de Nokogiri:

gem install nokogiri

[...]

Uso de las bibliotecas de su sistema

Si, en lugar de las bibliotecas vendidas por Nokogiri, le gustaría usar libxml2, libxslt y las bibliotecas relacionadas de su sistema, primero comprenda que puede pedirle a Nokogiri que trabaje con una versión no compatible de libxml2.

sudo apt-get install pkg-config gem install nokogiri -- --use-system-libraries

FYI - Estoy usando Nokogiri 1.6.6.2 y no ''solo funcionó''. Lo puse en marcha con --use-system-libraries .

Mac OS X

El consejo del sitio web también cubre OS X - esto funcionó para mí:
gem update --system xcode-select --install gem install nokogiri

Conclusión

Si tiene un problema de Nokogiri en cualquier plataforma, debe consultar el sitio web .


El error ''no se pudo crear el Makefile'' que está viendo también podría deberse a que no ha aceptado la licencia de Xcode (debe aceptarla cada vez que actualice Xcode). Ejecutar sudo xcodebuild -license accept debería eliminar este error y permitirle ejecutar gem install nokogiri éxito.


En CentOS esto es lo que necesitaba hacer:

gem update --system yum install libxml2-devel libxslt-devel ruby-devel gem install nokogiri -- --use-system-libraries


Para diagnosticar y resolver, esto es lo que funcionó para mí.

Para averiguar qué falló, vaya a su directorio de ruby ​​gems.

Por ejemplo:

$ cd <MY RUBY DIRECTORY>/lib/ruby/gems/2.0.0/gems

Si no conoce su directorio de gemas, intente esto:

$ echo $GEM_HOME /opt/gems/2.0.0 $ cd /opt/gems/2.0.0/gems

¿Qué versión de nokogiri estoy instalando?

$ ls -ladg nokogiri-* nokogiri-1.5.5

Ve al directorio del instalador:

$ cd nokogiri-1.5.5/ext/nokogiri

Intente instalar manualmente:

$ ruby extconf.rb

Resultado:

checking for libxml/parser.h... *** extconf.rb failed *** ...

Estoy usando Ubuntu, así que busco paquetes similares:

$ aptitude search libxml

Resultados:

p libxml2 - GNOME XML library p libxml2-dev - Development files for the GNOME XML library ...

Creo que libxml2 funcionará bien.

$ apt-get install libxml2

Las gemas nativas de Ruby a menudo necesitan los paquetes * -dev para los encabezados, así que instálalos:

$ apt-get install libxml2-dev

¿Ahora tengo el archivo del analizador?

$ find / | grep libxml/parser.h

Sí, el resultado muestra el analizador:

/usr/include/libxml2/libxml/parser.h

Ahora intente instalar de nuevo, esta vez proporcionando la ruta libxml2:

$ gem install nokogiri -- --with-xml2-dir=/usr/include/libxml2

Todavía falla, así que lea el registro de errores mkmf:

$ more mkmf.log

El registro de errores muestra lo que falló y tiene estas líneas que parecen prometedoras:

package configuration for libxslt is not found

¿Hay un paquete para ello?

$ aptitude search libxslt

Resultados:

v libxslt-dev i libxslt-ruby ...

Instala el paquete dev:

$ apt-get install libxslt-dev

Ahora intente instalar de nuevo, y también ponga xslt en la ruta:

$ gem install nokogiri -- / --with-xml2-dir=/usr/include/libxml2 / --with-xslt-dir=/usr/include/libxslt

¡Éxito!