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!