erreur d’installation de nokogiri gem

Je sais qu’il y a beaucoup de questions sur ce joyau mais aucune réponse n’a fonctionné pour moi.

Lorsque je lance dans SSH gem install nokogiri je reçois cette erreur:

 Extracting libxml2-2.8.0.tar.gz into tmp/x86_64-unknown-linux-gnu/ports/libxml2/2.8.0... OK Running patch with /home/user58952277/.gem/ruby/1.9.3/gems/nokogiri-1.6.2.1/ports/patches/libxml2/0001-Fix-parser-local-buffers-size-problems.patch... Running 'patch' for libxml2 2.8.0... ERROR, review 'tmp/x86_64-unknown-linux-gnu/ports/libxml2/2.8.0/patch.log' to see what happened. *** 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. 

Mon hôte m’a dit que toutes les librairies étaient installées. Voici les journaux complets après l’exécution de la commande install nokogiri:

 Building native extensions. This could take a while... Building nokogiri using packaged libraries. Building libxml2-2.8.0 for nokogiri with the following patches applied: - 0001-Fix-parser-local-buffers-size-problems.patch - 0002-Fix-entities-local-buffers-size-problems.patch - 0003-Fix-an-error-in-previous-commit.patch - 0004-Fix-potential-out-of-bound-access.patch - 0005-Detect-excessive-entities-expansion-upon-replacement.patch - 0006-Do-not-fetch-external-parsed-entities.patch - 0007-Enforce-XML_PARSER_EOF-state-handling-through-the-pa.patch - 0008-Improve-handling-of-xmlStopParser.patch - 0009-Fix-a-couple-of-return-without-value.patch - 0010-Keep-non-significant-blanks-node-in-HTML-parser.patch - 0011-Do-not-fetch-external-parameter-entities.patch ************************************************************************ IMPORTANT! Nokogiri builds and uses a packaged version of libxml2. If this is a concern for you and you want to use the system library instead, abort this installation process and reinstall nokogiri as follows: gem install nokogiri -- --use-system-libraries If you are using Bundler, tell it to use the option: bundle config build.nokogiri --use-system-libraries bundle install However, note that nokogiri does not necessarily support all versions of libxml2. For example, libxml2-2.9.0 and higher are currently known to be broken and thus unsupported by nokogiri, due to compatibility problems and XPath optimization bugs. ************************************************************************ ERROR: Error installing nokogiri: ERROR: Failed to build gem native extension. /opt/rubies/ruby-1.9.3/bin/ruby extconf.rb Building nokogiri using packaged libraries. checking for iconv.h... yes checking for iconv_open() in iconv.h... yes Building libxml2-2.8.0 for nokogiri with the following patches applied: - 0001-Fix-parser-local-buffers-size-problems.patch - 0002-Fix-entities-local-buffers-size-problems.patch - 0003-Fix-an-error-in-previous-commit.patch - 0004-Fix-potential-out-of-bound-access.patch - 0005-Detect-excessive-entities-expansion-upon-replacement.patch - 0006-Do-not-fetch-external-parsed-entities.patch - 0007-Enforce-XML_PARSER_EOF-state-handling-through-the-pa.patch - 0008-Improve-handling-of-xmlStopParser.patch - 0009-Fix-a-couple-of-return-without-value.patch - 0010-Keep-non-significant-blanks-node-in-HTML-parser.patch - 0011-Do-not-fetch-external-parameter-entities.patch ************************************************************************ IMPORTANT! Nokogiri builds and uses a packaged version of libxml2. If this is a concern for you and you want to use the system library instead, abort this installation process and reinstall nokogiri as follows: gem install nokogiri -- --use-system-libraries If you are using Bundler, tell it to use the option: bundle config build.nokogiri --use-system-libraries bundle install However, note that nokogiri does not necessarily support all versions of libxml2. For example, libxml2-2.9.0 and higher are currently known to be broken and thus unsupported by nokogiri, due to compatibility problems and XPath optimization bugs. ************************************************************************ Extracting libxml2-2.8.0.tar.gz into tmp/x86_64-unknown-linux-gnu/ports/libxml2/2.8.0... OK Running patch with /home/user58952277/.gem/ruby/1.9.3/gems/nokogiri-1.6.2.1/ports/patches/libxml2/0001-Fix-parser-local-buffers-size-problems.patch... Running 'patch' for libxml2 2.8.0... ERROR, review 'tmp/x86_64-unknown-linux-gnu/ports/libxml2/2.8.0/patch.log' to see what happened. *** 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=/opt/rubies/ruby-1.9.3/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 /home/user58952277/.gem/ruby/1.9.3/gems/mini_portile-0.6.0/lib/mini_portile.rb:279:in `block in execute': Failed to complete patch task (RuntimeError) from /home/user58952277/.gem/ruby/1.9.3/gems/mini_portile-0.6.0/lib/mini_portile.rb:271:in `chdir' from /home/user58952277/.gem/ruby/1.9.3/gems/mini_portile-0.6.0/lib/mini_portile.rb:271:in `execute' from extconf.rb:282:in `block in patch' from extconf.rb:279:in `each' from extconf.rb:279:in `patch' from /home/user58952277/.gem/ruby/1.9.3/gems/mini_portile-0.6.0/lib/mini_portile.rb:108:in `cook' from extconf.rb:253:in `block in process_recipe' from extconf.rb:154:in `tap' from extconf.rb:154:in `process_recipe' from extconf.rb:419:in `' 

macOS High Sierra 10.13

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

macOS Sierra 10.12:

 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/ 

OS X El Capitan 10.11

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

Envisagez d’append sudo si vous n’avez pas la permission.


Pour une raison quelconque, la version Yosemite d’OSX d’Apple n’a pas d’installation accessible par le système de libxml2. Nokogiri a besoin de cela pour comstackr et heureusement, Xcode a une version de libxml2 intégrée – il suffit de le spécifier lors de l’installation de la gem. Il est important d’installer Nokogiri correctement car Rails 4.2.1.rc4 tente automatiquement de l’installer dès maintenant et vous ressentirez des douleurs.

Commander ce post pour plus d’informations .

Enfin, le problème a été causé par nokogiri lui-même en livrant son propre libxml2 incompatible avec certains systèmes.
Donc, pour installer nokogiri, j’ai dû lui dire qu’il devait utiliser les bibliothèques système.

Je l’ai installé manuellement par:

 gem install nokogiri -v 1.6.2.1 -- --use-system-libraries 

Et cela a bien fonctionné. D’autres réponses ne l’ont pas résolu.

J’ai rencontré ce même problème à cause d’une dépendance de construction non répertoriée. Lorsque j’ai trouvé le répertoire tmp en question:

 find ~/.rbenv/ -name patch.log 

Ça disait:

sh: patch: commande introuvable

Corrigé cela avec un simple:

 sudo yum install -y patch 

Sur OSX Yosemite, j’ai fait xcode-select --install dans un terminal. Après quoi, le bundle a bien fonctionné avec ce joyau.

Cela fonctionne pour moi dans Windows 7 Home Basic 64 bits:

 gem install nokogiri -v 1.6.2.1 -- --use-system-libraries 

Cela a fonctionné pour moi avec OS X Yosemite.

 gem install nokogiri -v 1.6.5 -- --use-system-libraries 

C’est ce qui a fonctionné pour moi sur OS X 10.10.3 Yosemite:

 sudo gem install nokogiri -- --use-system-libraries --with-xslt-dir=/usr/local/opt/libxslt --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/libxml2 --with-xml2-lib=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/lib 

Tout comme wongzigii dit que la commande d’installation fonctionne avec ces indicateurs avec macOS Sierra

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/

Rien dans les réponses actuelles ne fonctionnait pour moi (j’utilise Ubuntu 16.04, pas Mac).

Cependant, en suivant les instructions sur le site Nokogiri et cette partie a fait l’affaire:

 # See http://www.nokogiri.org/tutorials/installing_nokogiri.html#ubuntu___debian sudo apt-get install build-essential patch sudo apt-get install ruby-dev zlib1g-dev liblzma-dev 

Remarque J’utilise Nokogiri depuis 2009 et j’ai toujours eu du mal à l’installer. Tout autre commentaire ne serait probablement pas conforme à SO T & Cs 🙂

Installation de Nokogiri dans Mac OS El Capitan:

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

bundle install

Ça marche pour moi 🙂

Nokogiri n’a pas trouvé de librairies Xcode sur ma machine OSX Sierra avant d’avoir lancé:

sudo xcodebuild -license accept

Cela a fonctionné pour moi:

 sudo gem install nokogiri -v 'versionNumber' -- --use-system-libraries --with-xslt-dir=/usr/local/opt/libxslt --with-xml2-include=/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/libxml2 --with-xml2-lib=/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/lib 

Enfin, après beaucoup de lutte, les éléments suivants ont fonctionné pour moi (OS X 10.8.5, macports). (J’installe des pages github c’est-à-dire jekyll)

 /opt/local/bin/gem install nokogiri -v 1.6.6.2 -- --use-system-libraries --with-xslt-dir=/usr/local/opt/libxslt --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/include/libxml2 --with-xml2-lib=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/lib 

J’utilise MacOS Sierra.

Je suis allé à la documentation nokogiri et j’ai suivi ceci:

SUR MAC OSX

L’installation devrait fonctionner avec les libxml2 et libxslt de Nokogiri.

Tout d’abord, assurez-vous d’avoir la dernière version des outils de ligne de commande RubyGems et xcode:

1 gem update --system

2 xcode-select --install

Ensuite, installez nokogiri:

1 gem install nokogiri