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.
J'ai réussi à installer Nokogiri sous Yosemite (OS X 10.10 Preview).
Ignorer ceci si une infusion a été installée.
Ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew tap homebrew/dupes
brew install libxml2 libxslt
brew install libiconv
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é.
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/
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
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
Cela a fonctionné pour moi:
ARCHFLAGS="-Arch x86_64" gem install nokogiri -v '1.6.0'
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
Cela a finalement fonctionné pour moi:
Sudo gem install nokogiri -- --use-system-libraries --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib/
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.
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
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
(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
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]
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
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
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
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/
Je pense que le problème est lié au système Ruby non détecté ou à l'installation de plusieurs rubis.
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.
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
Installez le Xcode complet. C'était la seule chose qui fonctionnait pour moi pour les anciennes versions de Nokogiri.
Essayez juste:
xcode-select --install
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
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