web-dev-qa-db-fra.com

Faute d'installer Nokogiri gem

Je travaille sur une application Rails qui permet de joindre des images à chaque compte utilisateur. J'utilise les services Web Paperclip et Amazon:

gem 'Paperclip'
gem 'aws-sdk'

Lorsque je lance l’installation en bundle, je reçois le message suivant: 

extconf a échoué, code de sortie 1

Gem files will remain installed in /usr/local/rvm/gems/Ruby-2.1.2/gems/nokogiri-1.6.5 for inspection.
Results logged to /usr/local/rvm/gems/Ruby-2.1.2/extensions/x86_64-darwin-13/2.1.0-static/nokogiri-1.6.5/gem_make.out
An error occurred while installing nokogiri (1.6.5), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.6.5'` succeeds before bundling.

Quand j'essaye de lancer 'gem install nokogiri', je reçois le message suivant:

extconf a échoué, code de sortie 1

Gem files will remain installed in /usr/local/rvm/gems/Ruby-2.1.2/gems/nokogiri-1.6.5 for inspection.
Results logged to /usr/local/rvm/gems/Ruby-2.1.2/extensions/x86_64-darwin-13/2.1.0-static/nokogiri-1.6.5/gem_make.out

Mon système d'exploitation est Mac OS X 10.9.4 Mavericks. Que se passe t-il ici? Comment puis-je obtenir que nokogiri soit installé et se comporte correctement?

Trace complète de la pile :

Building native extensions with: '--use-system-libraries'
This could take a while...
ERROR:  Error installing nokogiri:
    ERROR: Failed to build gem native extension.

    /usr/local/rvm/rubies/Ruby-2.1.2/bin/Ruby extconf.rb --use-system-libraries
checking if the C compiler accepts ... yes
checking if the C compiler accepts -Wno-error=unused-command-line-argument-hard-error-in-future... yes
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=/usr/local/rvm/rubies/Ruby-2.1.2/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-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

extconf failed, exit code 1

Gem files will remain installed in /usr/local/rvm/gems/Ruby-2.1.2/gems/nokogiri-1.6.5 for inspection.
Results logged to /usr/local/rvm/gems/Ruby-2.1.2/extensions/x86_64-darwin-13/2.1.0-static/nokogiri-1.6.5/gem_make.out
14
Katie H

Ça fonctionne super bien!

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

https://stackoverflow.com/a/24511149

29
Katie H

Avez-vous essayé gem install nokogiri -v 1.6.5 -- --use-system-libraries? La plupart des erreurs nokogiri concernent libxml2, libxslt ou libiconv config.

Nokogiri docs devrait vous donner plus d’instructions. Si la solution ne fonctionne pas, vous pouvez publier une trace de pile complète afin que les autres utilisateurs puissent en faire davantage.

7
kasperite

après la mise à niveau vers Rails 4.2.4 (qui inclut Nokogiri 1.6.6.2) sur Ubuntu 14.04 (j'utilise RVM), je devais le faire:

Sudo apt-get install libgmp-dev

ou 

Sudo apt-get install libgmp3-dev
4
equivalent8

Sous Ubuntu, essayez d’installer les dépendances suivantes:

Sudo apt-get install gcc Ruby-dev libxslt-dev libxml2-dev zlib1g-dev
4
kenorb

J'ai résolu ce problème en installant les dépendances xcode que Nokogiri doit installer:

xcode-select --install

Après cela, exécutez à nouveau l’installation du bundle et cela devrait fonctionner.

2
Alexander Luna

Selon les instructions d’installation de nokogiri, 

Sudo apt-get install zlib1g-dev

résolu le problème pour moi.

2
Chandru

Depuis que l’opérateur faisait référence à bundle install que j’ai eu l’occasion d’utiliser, je pense qu’il est utile de rappeler la page Installation de Nokogiri qui a finalement révélé la solution la plus élégante (qui a également fonctionné pour moi sous Mac OS X 10.8.5):

bundle config build.nokogiri --use-system-libraries
bundle install

Ceci indique à l’indicateur d’installer nokogiri comme indiqué dans les réponses de @kasperite

2
Patru

Paquet qui l'a fait:

apt-get install libghc-zlib-dev

Autre candidat possible:

zlib1g-dev sur 12.04

je l'ai trouvé ici

1
Tamer

Je n'ai pas reçu le même message d'erreur que vous, mais je voulais noter ce que j'ai finalement trouvé comme solution extraordinairement simple pour l'installation de nokogiri sur Ubuntu:

Le processus de construction de nokogiri dépend de patch.

Run: Sudo apt-get install patch

Je travaillais sur un VM (une boîte vagabonde, en fait), c'est pourquoi je n'avais pas déjà installé patch.

L'erreur que j'ai eu (après beaucoup d'autres choses qui ressemblaient à une erreur mais était en fait juste un avertissement) était:

Extracting libxml2-2.9.2.tar.gz into tmp/x86_64-pc-linux-gnu/ports/libxml2/2.9.2... OK
Running patch with /var/lib/gems/1.9.1/gems/nokogiri-1.6.6.2/ports/patches/libxml2/0001-Revert-Missing-initialization-for-the-catalog-module.patch...
Running 'patch' for libxml2 2.9.2... ERROR, review '/var/lib/gems/1.9.1/gems/nokogiri-1.6.6.2/ext/nokogiri/tmp/x86_64-pc-linux-gnu/ports/libxml2/2.9.2/patch.log' to see what happened.

J'ai déjà supprimé le journal (la procédure ci-dessus était dans ma session de terminal), mais le fichier patch.log référencé ci-dessus était absurdement simple; il vient de dire quelque chose comme patch not found.

Garçon, je me suis senti stupide pour tous les travaux, j'ai installé des bibliothèques pour essayer de le réparer! :)

0
Wildcard

Pour prendre la réponse géniale de dylanjhunt sur Github , juste au cas où quelqu'un ne l'aurait pas essayée,

Pour ajouter à cela, j’avais un problème très similaire qui était résolu en mettant à jour les outils de développement.

xcode-select --install

En espérant que quelqu'un voit cela qui ne l'ait pas encore essayé et le aide.

0
beckah

installez d'abord gcc

dans * buntu: apt-get install gcc

après cela, U peut requerer la plupart des bibliothèques de développement, telles que libxml2/zlib/etc . voir le journal de construction (chemin dans mon cas): /var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/nokogiri-1.6.8.1/mkmf.logfor chaîne comme - erreur fatale: zlib.h: aucun fichier ou répertoire de ce type

0
guest

J'ai eu le même problème plus tôt aujourd'hui. J'avais mis à jour mon xcode et je n'avais pas accepté les termes pour le moment. Lancer Sudo xcodebuild -license et accepter mon paquet a de nouveau fonctionné.

0
fguillen