web-dev-qa-db-fra.com

Installation de Nokogiri sur OSX 10.10 Yosemite

Je suis récemment passé à la version 10.10 de Yosemite, mais je ne parviens pas à installer Nokogiri. J'utilise RVM et Ruby 1.9.3. J'ai également suivi les étapes ici et essayé de suivre les instructions de la page d'accueil de Nokogiri. 

J'ai installé libxml2 (2.9.1) et libxslt (1.1.28) via homebrew et j'ai essayé d'utiliser les outils de ligne de commande de mon installation Xcode 5 et de Xcode 6 bêta. 

gem install nokogiri -v '1.5.5'
Building native extensions.  This could take a while...
ERROR:  Error installing nokogiri:
    ERROR: Failed to build gem native extension.

        /Users/grantdavis/.rvm/rubies/Ruby-1.9.3-p362/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.

Provided configuration options:
    --with-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=/Users/grantdavis/.rvm/rubies/Ruby-1.9.3-p362/bin/Ruby
    --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-iconv-dir
    --without-iconv-dir
    --with-iconv-include
    --without-iconv-include=${iconv-dir}/include
    --with-iconv-lib
    --without-iconv-lib=${iconv-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-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-libxml-2.0-config
    --without-libxml-2.0-config
    --with-libiconv-config
    --without-libiconv-config
/Users/grantdavis/.rvm/rubies/Ruby-1.9.3-p362/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 /Users/grantdavis/.rvm/rubies/Ruby-1.9.3-p362/lib/Ruby/1.9.1/mkmf.rb:506:in `try_cpp'
    from /Users/grantdavis/.rvm/rubies/Ruby-1.9.3-p362/lib/Ruby/1.9.1/mkmf.rb:970:in `block in find_header'
    from /Users/grantdavis/.rvm/rubies/Ruby-1.9.3-p362/lib/Ruby/1.9.1/mkmf.rb:790:in `block in checking_for'
    from /Users/grantdavis/.rvm/rubies/Ruby-1.9.3-p362/lib/Ruby/1.9.1/mkmf.rb:284:in `block (2 levels) in postpone'
    from /Users/grantdavis/.rvm/rubies/Ruby-1.9.3-p362/lib/Ruby/1.9.1/mkmf.rb:254:in `open'
    from /Users/grantdavis/.rvm/rubies/Ruby-1.9.3-p362/lib/Ruby/1.9.1/mkmf.rb:284:in `block in postpone'
    from /Users/grantdavis/.rvm/rubies/Ruby-1.9.3-p362/lib/Ruby/1.9.1/mkmf.rb:254:in `open'
    from /Users/grantdavis/.rvm/rubies/Ruby-1.9.3-p362/lib/Ruby/1.9.1/mkmf.rb:280:in `postpone'
    from /Users/grantdavis/.rvm/rubies/Ruby-1.9.3-p362/lib/Ruby/1.9.1/mkmf.rb:789:in `checking_for'
    from /Users/grantdavis/.rvm/rubies/Ruby-1.9.3-p362/lib/Ruby/1.9.1/mkmf.rb:969:in `find_header'
    from extconf.rb:114:in `<main>'

Quelqu'un a une idée sur la façon de résoudre ces erreurs d'installation?

EDIT 6/10/14: Après avoir essayé pendant quelques jours d'installer Nokogiri sur OSX 10.10, j'ai finalement abandonné la tâche et restauré la version 10.9 sur ma machine. Plusieurs bibliothèques et ensembles doivent être mis à jour pour fonctionner dans l'environnement 10.10.

53
gdavis

J'ai réussi à installer Nokogiri sous Yosemite (OS X 10.10 Preview).

Étape 1: Installer Brew

Ignorer ceci si une infusion a été installée.

Ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Étape 2: Installez les bibliothèques de brassage

brew tap homebrew/dupes
brew install libxml2 libxslt
brew install libiconv

Étape 3: Téléchargez et installez Apple Commandline Tools for 10.10

Il est important que vous ayez besoin de redémarrer après l'installation. 

Lien: commande_ligne_outils_pour_externe_10_10_june_2014.dmg

Après avoir redémarré, vous pouvez vérifier l’installation dans Terminal:

> xcode-select --install
-> xcode-select: error: command line tools are already installed, use "Software Update" to install updates

Cette erreur signifie que l'outil de ligne de commande est correctement installé. 

Installer Nokogiri

Essayez d’utiliser n version précédente 1.6.1 dans votre Gemfile. La version 1.6.2.1 présente actuellement des problèmes avec "10.10 Preview". Cela ne fonctionne qu'avec mon Ruby 2.0.0p247 de Rbenv, échec de l'installation sur 2.1.1. Vous pouvez essayer plusieurs fois vos versions existantes de Ruby.

gem install nokogiri  -v '1.6.1' -- --with-iconv-dir=/usr/local/Cellar/libiconv/1.14/
79
activars

libxml2 - 1.6.6.2 dans Yosemite:

Sudo env ARCHFLAGS="-Arch x86_64" gem install nokogiri -- --use-system-libraries  -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.2/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.2/lib --with-xslt-lib=/usr/local/lib --with-xslt-include=/usr/local/include
63
xrage

Pour Mac OS El Capitan:

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

22
Maximus S

Cela a fonctionné pour moi:

ARCHFLAGS="-Arch x86_64" gem install nokogiri -v '1.6.0'
18
Tom Coleman

J'ai eu le même problème avec MacPorts Ruby2.1:

can not gem install nokogiri on osx10.10 with macports Ruby2.1

L'installation commence, le processeur passe à 50% sur un seul cœur à 100%, puis le processeur tombe à près de zéro, mais iostat tps passe à travers le mur.

Cela a aidé:

# port install libiconv libxslt libxml2

# gem install nokogiri -- --use-system-libraries --with-iconv-dir=/opt/local --with-xml2-dir=/opt/local --with-xslt-dir=/opt/local
7
edx

Cela a finalement fonctionné pour moi:

Sudo gem install nokogiri -- --use-system-libraries --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib/
5
Manas Tungare

Pour ceux qui n'ont pas réussi à faire fonctionner cela sur El Capitan, ce qui a finalement fonctionné pour moi a été:

Sudo gem install nokogiri -- --use-system-libraries --with-xslt-dir=/usr/local/opt/libxslt --with-iconv-dir=/usr/local/opt/libiconv --with-xml2-dir=/usr/local/opt/libxml2 --with-xml2-config=/usr/local/opt/libxml2/bin/xml2-config --with-xml2-include=/usr/local/opt/libxml2/include/libxml2 --with-xslt-config=/usr/local/opt/libxslt/bin/xslt-config

Je n'ai pas installé macports et mon système est un étrange méli-mélo. Forcer des installations spécifiques pour chaque dépendance est le seul moyen de faire compiler Nokogiri. Super ennuyeux, mais au moins ça marche.

5
ramijames
Sudo gem update --system
Sudo gem install nokogiri -v '1.6.6.2' -- --use-system-libraries --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib
3
IM_AG

Les instructions du site Web Nokogiri ont fonctionné pour moi sous OSX 10.9 et 10.10.

brew unlink gcc-4.2      # you might not need this step
gem uninstall nokogiri
xcode-select --install
gem install nokogiri
3
Daniel Romero

(réponse complète ici https://Gist.github.com/chrisb/4d6a09c6cc1ca2e1b14e )

Il semble qu'Homebrew dépend en quelque sorte de Ruby dans les versions/1.8 (même si Mavericks est livré avec la version 2.0). Jusqu'à ce que Homebrew réponde à cette question, nous allons créer un lien symbolique entre notre version système de Ruby et celle recherchée par Homebrew.

Créez le dossier:

Sudo mkdir -p /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin

Puis symlink le binaire:

Sudo ln -s /usr/bin/Ruby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/Ruby
2
parquar

Cela a fonctionné pour moi:

$ brew install libxml2 libxslt  # optional?
$ brew install libiconv         # optional?
$ gem install nokogiri -v 1.6.8 -- --use-system-libraries --with-xml2-include=/usr/local/opt/libxml2

sur un environnement comme celui-ci:

$ sw_vers -productVersion 
10.9.4
$ brew -v
Homebrew 0.9.9 (git revision aa747; last commit 2016-05-26)
$ gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 2.0.14
  - Ruby VERSION: 2.0.0 (2014-02-24 patchlevel 451) [universal.x86_64-darwin13]
2
Nakilon

J'ai le même message d'erreur sur OS X Yosemite version 10.10.5

J'avais récemment effectué diverses mises à jour du système d'exploitation et il s'est avéré qu'il me suffisait d'accepter le nouveau contrat de licence xcode à l'aide de la commande suivante:

Sudo xcodebuild -license
1
Torben Jacobsen

Si vous utilisez OS X 10.10 et MacPorts, vous devez également installer pkgconfig:

Sudo port install pkgconfig libxml2 libxslt libiconv

De même, si vous souhaitez utiliser les bibliothèques MacPorts automatiquement sans ajouter d'options de configuration, vous devez ajouter ceci à votre fichier .profile ou .bashrc:

export PATH=/opt/local/bin:/opt/local/sbin:$PATH
export MANPATH=/opt/local/share/man:$MANPATH
export LDFLAGS="-L/opt/local/lib"
export CPPFLAGS="-I/opt/local/include"

Vous pouvez également ajouter ceci pour indiquer à Nokogiri de toujours utiliser vos bibliothèques système:

export NOKOGIRI_USE_SYSTEM_LIBRARIES=Y

Redémarrez le terminal après avoir ajouté toutes ces exportations.

En utilisant cette configuration, vous pouvez installer Nokogiri en utilisant:

gem install nokogiri
1
Xeron

La seule chose qui a fonctionné pour moi a été de mettre à niveau le compilateur de Apple-gcc42 vers gcc48:

brew uninstall Apple-gcc42
brew install gcc48 # this might take an hour or so
rvm implode
\curl -sSL https://get.rvm.io | bash -s stable # reinstall RVM
rvm install Ruby-1.9.3-p551
bundle update libv8 # 3.16.14.3 doesn't work but 3.16.14.7 does
bundle
1
Hew Wolff

Pour moi, passer à Xcode 5 plutôt que d'utiliser l'outil CLI de Xcode 6:

Sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer/
0
alexzg

Je pense que le problème est lié au système Ruby non détecté ou à l'installation de plusieurs rubis.

  • Utilisez-vous RVM pour gérer les rubis?
  • Quelle est la sortie de Ruby -v?

Ceux-ci devraient être le point de départ pour trouver une solution.

L'erreur bad interpreter est liée à un problème d'installation de Ruby.

Idéalement, vous devriez commencer par le système Ruby, celui fourni avec Xcode . Vous devez donc désinstaller complètement Xcode en utilisant:

http://osxdaily.com/2012/02/20/uninstall-xcode/

Désinstallez brew, rvm et réinstallez-les.

0
frishi

Cela a fonctionné:

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

La source

0
0bserver07

Installez le Xcode complet. C'était la seule chose qui fonctionnait pour moi pour les anciennes versions de Nokogiri.

0
marano

Essayez juste:

xcode-select --install
0
leoyamasaki

résolvez le problème "Impossible d'écrire/usr/bin/nokogiri lors de l'installation sur Mac OS El Capitan" sous mac os x:

Sudo gem install nokogiri -n /usr/local/bin

Référence: https://www.bountysource.com/issues/28085261-can-t-write-usr-bin-nokogiri-while-installing-on-mac-os-ei-capitan

0
vivia

Dans mon cas, le message d'erreur a été écrit ci-dessous et la solution correspondante également.

Message d'erreur:

...
libxml2 is missing.  Please locate mkmf.log to investigate how it is failing.
...

Solution: 

gem install nokogiri -- --use-system-libraries --with-libxml2lib=/usr/local/opt/libxml2/lib/libxml2.a

Je lui ai directement donné le chemin de la bibliothèque de libxml2.a 

0
Ivan Lin