rails que hace force ruby-on-rails rubygems bundle nokogiri

ruby-on-rails - que - nokogiri gem



Nokogiri ''No se pudo construir la extensión nativa de la gema'' cuando ejecuto la instalación del paquete (16)

El error indica que su biblioteca del sistema libxml2 está desactualizada. Necesitas la versión 2.6.21 o posterior.

En mi sistema Debian / ubuntu, nokogiri compila para mí, y puedo ver que tengo la versión 2.9.1

dpkg -l | grep libxml2-dev ii libxml2-dev:amd64 2.9.1+dfsg1-3 amd64 Development files for the GNOME XML library

Tienes tres opciones aquí.

  1. Compruebe si su gestor de paquetes del sistema operativo proporciona una versión más nueva de la biblioteca libxml2

  2. Descargue el último código fuente libxml2, compílelo e instálelo

  3. Especifique manualmente una versión anterior de nokogiri en su Gemfile que funcione con una biblioteca libxml2 anterior. El registro de cambios de nokogiri muestra que no tendrás este problema con la versión 1.4.7 de nokogiri (aunque el uso de una versión anterior puede exponerte a problemas de seguridad)

Para la solución n. ° 3, pondría esto en su gemfile: gem ''nokogiri'', ''1.4.7''

Estoy ejecutando bundle install y obtengo este error:

Building nokogiri using system libraries. Gem::Ext::BuildError: ERROR: Failed to build gem native extension. /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb --use-system-libraries Building nokogiri using system libraries. libxml2 version 2.6.21 or later is required! *** 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 --with-zlib-dir --without-zlib-dir --with-zlib-include --without-zlib-include=${zlib-dir}/include --with-zlib-lib --without-zlib-lib=${zlib-dir}/lib --with-xml2-dir --without-xml2-dir --with-xml2-include --without-xml2-include=${xml2-dir}/include --with-xml2-lib --without-xml2-lib=${xml2-dir}/lib --with-libxml-2.0-config --without-libxml-2.0-config --with-pkg-config --without-pkg-config --with-xslt-dir --without-xslt-dir --with-xslt-include --without-xslt-include=${xslt-dir}/include --with-xslt-lib --without-xslt-lib=${xslt-dir}/lib --with-libxslt-config --without-libxslt-config --with-pkg-config --without-pkg-config --with-exslt-dir --without-exslt-dir --with-exslt-include --without-exslt-include=${exslt-dir}/include --with-exslt-lib --without-exslt-lib=${exslt-dir}/lib --with-libexslt-config --without-libexslt-config --with-pkg-config --without-pkg-config extconf failed, exit code 1 Gem files will remain installed in /Users/myuser/projectpath/vendor/bundle/ruby/2.0.0/gems/nokogiri-1.6.2.rc2 for inspection. Results logged to /Users/myuser/projectpath/vendor/bundle/ruby/2.0.0/extensions/universal-darwin-13/2.0.0/nokogiri-1.6.2.rc2/gem_make.out An error occurred while installing nokogiri (1.6.2.rc2), and Bundler cannot continue. Make sure that `gem install nokogiri -v ''1.6.2.rc2''` succeeds before bundling.

¿Alguna idea de lo que podría ser esto?

EDITAR:

También instalé nokogiri siguiendo las instrucciones en el tutorial , y lo extraño es que la gema se instaló con éxito. Cuando ejecuto gem list , tengo nokogiri (1.6.2.1) , pero al ejecutar bundle install muestra el error.


En Amazon Linux, tuve que instalar estas dos bibliotecas de desarrollo y luego especificar la ruta de inclusión para libxml2

$ yum install libxml2-devel libxslt-devel $ gem install nokogiri -- --use-system-libraries=true --with-xml2-include=/usr/include/libxml2/



En OSX 10.12 (Sierra) esto funcionó para mí:

gem install nokogiri -- --use-system-libraries=true --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/libxml2


En Yosemite 10.10, esta solución funcionó para mí:

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


En Yosemite 10.10, los siguientes pasos resolvieron completamente mis problemas:

  • sudo xcode-select -switch /Library/Developer/CommandLineTools
  • gem uninstall nokogiri libxml-ruby
  • gem install nokogiri

En Yosemite 10.10.1, este paso no ayudó (puede ser que funcione para otros)

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

Básicamente el problema en mi local se debió a libxml2 , por lo que la solución siguiente fue el truco

bundle config build.nokogiri "--use-system-libraries --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/libxml2 bundle install


Este hilo en GitHub me dio el truco que necesitaba para instalar Nokogiri 1.6.2:

Mi ~ / .gitconfig tenía la configuración autocrlf = input . Cuando elimino esta configuración, la construcción de nokogiri tiene éxito.


Este es un hilo antiguo, pero me tocó problemas similares, y la solución en mi caso fue bastante diferente a la publicada hasta ahora.

Después de algunas excavaciones, encontré este hilo: https://github.com/bundler/bundler/issues/2648#issuecomment-25124800

Habla de bundler usando una versión diferente de ruby ​​a la utilizada por gem.

De la pasta de OP, podemos ver que bundler está usando la copia del sistema Mac de ruby: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby

En mi caso, descubrí que la gema provenía de brebaje; which gem dio /usr/local/bin/gem que se /Cellar/ruby/2.3.3/bin/gem a /Cellar/ruby/2.3.3/bin/gem . Creo que el caso del OP fue el mismo.

Entonces, gem y bundler no funcionan con la misma instalación de ruby, lo que explica por qué el OP ve esto:

Cuando ejecuto gem gem list, tengo nokogiri (1.6.2.1), pero al ejecutar bundle install muestra el error.

En mi caso, simplemente ejecuté el gem install bundler , que hizo que el bundler comenzara a usar la versión de brew de ruby, y todos los problemas desaparecieron.


Esto funcionó para OS X El Capitan:

brew install libxml2 libxslt libiconv

Después de ejecutar the''brew install libxml2 libxslt libiconv ''Puede encontrar que ya están instalados. No se preocupe, nunca está de más comprobarlo.

sudo gem install nokogiri -v ''1.6.7'' -- --use-system-libraries --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib bundle install

Cambie la versión de nokogiri, si es necesario. p.ej

sudo gem install nokogiri -v ''1.6.5'' -- --use-system-libraries --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib


Los consejos anteriores no me ayudaron, aquí está la solución para OS 10.9:

brew install libxml2 bundle config build.nokogiri "--use-system-libraries --with-xml2-include=/usr/local/opt/libxml2/include/libxml2" bundle install


Para #CentOS tuve que hacer lo siguiente:

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


Para Mac, la razón por la que falló es que no tenía las últimas herramientas de desarrollo de Xcode. Nokogiri ya se ha empaquetado con libxml2. Por la falta de las últimas herramientas de desarrollo de Xcode, no puede construir extensiones nativas.

Para actualizar Xcode Developer Tools usando:

xcode-select --install

Y entonces:

gem install nokogiri

Si lo arreglas usando

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

puede recibir una advertencia similar más adelante:

WARNING: Nokogiri was built against LibXML version 2.9.3, but has dynamically loaded 2.9.0


También tuve algunos problemas para instalar nokogiri, luego de instalar los siguientes paquetes, funcionó para mí:

libxslt-dev libxml2-dev libruby1.8 libreadline-ruby1.8 libopenssl-ruby libxml2

No estoy seguro, cuál fue exactamente necesario.


Tuve este problema exacto. Corro un entorno de rieles en un mac. Después de pasar de Yosemite a Sierra, creo que fue cuando comenzó.

Para solucionar el problema, solo tuve que instalar las xcode command line tools . No sé si la actualización Sierra los eliminó o qué.

xcode-select --install

(esto instalará las xcode command line tools )

También otro síntoma ... cosas como el estado de git no funcionarán. Después de esto, pude hacer rails nueva aplicación y estaba bien.