web-dev-qa-db-fra.com

erreur d'installation de gem nokogiri

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

Quand je cours en 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 bibliothèques sont 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 `<main>'
63
Claudiu Creanga

Enfin, le problème a été causé par nokogiri lui-même en expédiant sa propre libxml2 incompatible avec certains systèmes.
Donc, pour installer nokogiri, je devais 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 ça a bien fonctionné. D'autres réponses ne l'ont pas résolu.

49
Claudiu Creanga

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'ajouter Sudo si vous n'avez pas la permission.


Pour une raison quelconque, la version Yosemite d’OSX d’Apple ne dispose pas d’une installation de libxml2 accessible par le système. Nokogiri en a besoin pour compiler et, heureusement, Xcode est fourni avec une version de libxml2 - il suffit de la spécifier lors de l’installation de la gem. Il est important d’installer correctement Nokogiri car à partir de maintenant Rails 4.2.1.rc4 tente automatiquement de l’installer et vous ressentirez une douleur.

Consultez ce post pour plus d'informations .

134
Zigii Wong

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

find ~/.rbenv/ -name patch.log

Ça disait:

sh: patch: commande introuvable

Correction que d'un simple:

Sudo yum install -y patch
24
billwanjohi

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

18
Christian Fazzini

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

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

Rien dans les réponses actuelles n'a fonctionné pour moi (j'utilise Ubuntu 16.04, pas Mac).

Cependant, en suivant les instructions de 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 CG) :)

3
Riccardo

Cela a fonctionné pour moi avec OS X Yosemite.

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

Installer Nokogiri sous Mac OS El Capitan:

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

bundle install

Ça marche pour moi :)

3
Anil Yadav

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
2
Adam

Nokogiri n'a pas trouvé de librairies Xcode sur mon ordinateur OSX Sierra avant de lancer:

Sudo xcodebuild -license accept

2

Just Like wongzigii indique que la commande d'installation fonctionne avec les 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/

2
Gus

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
1
Will Hodges

Dans mon cas, j'utilise Mac OSX Mojave et je devais installer un package décrit ici: https://developer.Apple.com/documentation/xcode_release_notes/xcode_10_release_notes#3035624

Voici le chemin d'accès au package: /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

Après l'avoir installé, l'installation s'est terminée sans problèmes.

0
Samuel Morais

Enfin, après beaucoup de difficultés, 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 
0
Victor Vorski