J'ai mis à niveau mon OSX (Lion) vers Mavericks et je ne peux pas installer Nokogiri pour mes projets.
J'installe déjà XCode 5.0.1, les outils de ligne de commande (en utilisant xcode-select --install
), et j'ai déjà installé libxml2 à partir de Homebrew et j'ai toujours des problèmes.
L'erreur est:
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/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/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/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/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:368:in `try_do': The complier failed to generate an executable file. (RuntimeError)
You have to install development tools first.
from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:452:in `try_cpp'
from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:853:in `block in find_header'
from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:693:in `block in checking_for'
from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:280:in `block (2 levels) in postpone'
from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:254:in `open'
from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:280:in `block in postpone'
from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:254:in `open'
from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:276:in `postpone'
from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:692:in `checking_for'
from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:852:in `find_header'
from extconf.rb:116:in `<main>'
Gem files will remain installed in /Users/ericcamalionte/Locaweb/code/dns-panel/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.5.9 for inspection.
Results logged to /Users/ericcamalionte/Locaweb/code/dns-panel/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.5.9/ext/nokogiri/gem_make.out
An error occured while installing nokogiri (1.5.9), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.5.9'` succeeds before bundling.
J'ai installé libxml2, libxslt et libiconv de Homebrew, et défini les paramètres pour installer Nokogiri, mais ne fonctionne pas aussi.
Je ne trouve pas ce qui ne va pas dans mon environnement, pouvez-vous m'aider?
Réponses:
Vous pouvez également installer Nokogiri sur Mac OS X 10.9 Mavericks avec une installation XCode complète en utilisant:
Mettre à jour
Pour ceux qui utilisent Yosemite, la commande suivante fonctionnera:
ou, il peut en fait être dans votre
MacOSX10.11.sdk
dossier (le mien était au 18-Sep-2015) de toute façon, donc même si vous n'êtes pas encore complètement à El Capitan, j'ai récemment mis à jour XCode et vous devrez peut-être utiliser le SDK El Capitan chemin, qui suit ensuite:Mettre à jour
Pour ceux qui utilisent El Capitan, la commande suivante fonctionnera:
Mettre à jour
Pour ceux qui utilisent Sierra, la commande suivante fonctionnera:
la source
--use-system-libraries
pour que cela fonctionne:gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2 --use-system-libraries
gem install nokogiri -- --with-xml2-include=`xcrun --show-sdk-path`/usr/include/libxml2 --use-system-libraries
Après avoir parcouru les GIF animés ici , tout ce que j'avais à faire était simplement
xcode-select --install
et celagem install nokogiri
fonctionnait bien.la source
J'ai trouvé ce journal et j'ai vu que gcc-4.2 était introuvable:
Pour résoudre ce problème, j'ai installé apple-gcc42 en utilisant homebrew
brew install apple-gcc42
et j'ai créé un lien symbolique vers mon / usr / bin:sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2 /usr/bin/gcc-4.2
la source
brew install apple-gcc42
... et ça marche. Cette commande ne fonctionne pas pour vous?xcode-select --install
avant l'installation de l'infusion et tout fonctionne maintenant.Si vous exécutez Xcode 5.1, les outils de ligne de commande ne fonctionnent pas pour nokogiri 1.6.1. Vous devrez télécharger les outils de fin octobre 2013 auprès d' Apple . Une fois que vous faites cette course
pour configurer votre machine afin d'utiliser les outils de ligne de commande Xcode 5.0.X, puis exécutez
Si vous souhaitez réinitialiser vos outils de ligne de commande à la version Xcode.app après, exécutez
Ou, une autre chose que vous pouvez faire est d'ajouter l'indicateur pour ignorer les arguments de ligne de commande inconnus. Ensuite, l'installation ressemble à ceci:
la source
C'est ce qui a fonctionné pour moi sur OSX Mavericks:
la source
sudo
avec RVM ou rbenv causera des problèmes car root ne sait pas où vivent les Rubies en bac à sable. Ceci est couvert dans la page d'installation RVM . L'OP utilise RVM, et l'utilisationsudo
entraînerait l'installation de Nokogiri dans Ruby d'Apple, pas dans l'utilisateur. Donc, ne le faites pas sauf si vous êtes SÛR de vouloir installer dans Ruby d'Apple si vous êtes sur Mac OS, ou dans le système Ruby si vous êtes sur un autre * nix.Je suis sur OSX Mavericks et mon problème s'est avéré être une mauvaise installation de Ruby.
Alors, j'ai réinstallé ruby avec rvm:
J'ai pu alors
Problème résolu.
la source
J'aime m'en tenir aux éléments fournis par le système. Cela a fonctionné pour moi:
la source
J'ai rencontré ce problème immédiatement après l'installation de la mise à jour Mavericks 10.9.5 et de la mise à jour des outils de développement 10.9 d'Apple. J'ai couru
xcode-select --install
, mais cela n'a pas résolu le problème. Ensuite, j'ai ouvert XCode, accepté l'eula et quitté XCode. Cela a résolu le problème.la source
J'ai eu ce problème aujourd'hui, sur Maverick, voici comment j'ai fini par résoudre le problème:
Assurez-vous que vous connaissez la version de libiconv dans Cellar mine ci-dessous était 1.14, puis installez comme ci-dessous:
Si vous avez besoin d'une version particulière de nokogiri, par exemple -v '1.6.2.1', installez-la en tant que:
Nokogiri a été installé avec succès!
la source
C'est le même que celui de @ thomas_witt mais fonctionne sur Mac OS X Sierra:
la source
Pour que l'installation fonctionne, j'ai dû modifier les chemins de fichiers dans la
gem install
commande pour qu'ils correspondent à ceux de mon système. J'ai différentes versions de libxml2 et libiconv et une structure de fichiers légèrement différente. La commande, avec mes modifications, est:la source
Pour les personnes utilisant MacPorts , assurez-vous que vous avez installé
libxml2
viaMacPorts
. Tapez ensuite:Cela devrait faire l'affaire, a fonctionné pour moi sans utiliser de chemins complets.
la source
À utiliser
brew install libxml2 libxslt
si vous utilisez Homebrew.la source
Voici une autre référence:
J'ai eu une erreur lors de l'installation de nokogiri
erreur comme celle-ci:
Vous devez d'abord installer les outils de développement.
alors probablement besoin:
ou si vous avez une erreur comme
Je corrige simplement le chemin de la bibliothèque par:
pour bundle besoin de quelque chose comme:
la source
Cela fonctionne pour moi
Exécutez simplement sous deux commandes
Il vous demandera de télécharger dire «oui» puis il vous demandera d'installer le composant xcode cliquez sur installer.
Maintenant, essayez d'installer le gem avec la commande ci-dessous
Cela fonctionne pour moi avec l'environnement ci-dessus.
la source
J'ai rencontré le même problème pour Mavrick, et la solution était:
Cependant, cela ne fonctionne pas car la page de téléchargement d'Apple pour l'outil de ligne de commande n'a pas ce programme d'installation disponible publiquement maintenant.
Donc, si vous voulez avoir les outils de ligne de commande pour Mavricks, vous devez avoir un compte payant . Alors vous seul pourrez l'installer. Une fois que vous l'avez installé, vous ne serez pas confronté à ce problème avec Nokogiri.
la source
J'ai eu cette même erreur sur une nouvelle installation de Mavericks. Après avoir manqué de jugement, j'ai renommé mon ensemble d'applications Xcode en
Xcode 5.0.1.app
.Apparemment, le script d'installation de Nokogiri ne cite pas ses chemins et donc l'espace dans le nom du fichier a causé toutes sortes de problèmes. Ce n'est que lorsque j'ai essayé
brew install libxml2
que l'erreur est devenue évidente.Leçon apprise: les espaces dans les noms de fichiers sont mauvais.
la source
Dans mon cas, je devais exécuter /usr/bin/gcc-4.2 après l'avoir lié symboliquement. Vous devez accepter le contrat de licence, sinon il se bloque.
la source
Le message d'erreur donne un indice ici:
The compiler failed to generate an executable file. (RuntimeError)
Vous devrez peut-être également installer et lier ces éléments:
la source
la source
Pour moi, l'erreur était que gcc (4.2.1, installé à partir de Homebrew) se plaignait que:
J'ai résolu le problème en forçant uniquement x86_64:
la source
Après la mise à niveau vers Maverick, j'ai eu un problème similaire. J'utilise RVM avec Ruby 1.9.2-p320, et j'ai essayé plusieurs solutions données ici, mais rien n'a résolu le problème.
Ensuite, je suis passé à Ruby 2.1.2 et j'ai
bundle install
installé Nokogiri immédiatement.la source
Si quelqu'un a ce problème sur el capitan, tout en utilisant bundler.
Assurez-vous que les outils de ligne de commande xcode sont installés et exécutez ceci:
la source
J'étais confronté au même problème des deux dernières semaines en essayant d'exécuter une application de la version Rails 3.
Le problème est que votre rvm / rbenv n'utilise pas le compilateur C.
Utilisez cette commande pour rvm pour prendre un compilateur C compatible
Donc, si vous utilisez Ruby 1.9.3, utilisez-le de cette façon
Utilisez cette commande chaque fois que vous ne parvenez pas à regrouper l'installation ou quoi que ce soit. Cette chose fonctionne sur El Capitan, rails 3.2.16, ruby 1.9.3, mysql 5.7 J'espère que cela résoudra le problème.
J'étais confronté au même problème des deux dernières semaines en essayant d'exécuter une application de la version Rails 3.
Le problème est que votre rvm / rbenv n'utilise pas le compilateur C.
Utilisez cette commande pour rvm pour prendre un compilateur C compatible
Donc, si vous utilisez Ruby 1.9.3, utilisez-le de cette façon
Utilisez cette commande chaque fois que vous ne parvenez pas à regrouper l'installation ou quoi que ce soit.
Cette chose fonctionne sur El Capitan, rails 3.2.16, ruby 1.9.3, mysql 5.7 J'espère que cela résoudra le problème. Et aussi si vous avez déjà le Xcode et que vous n'obtenez pas les mêmes erreurs lors de l'installation d'un gem, essayez cette solution.
la source
J'ai ajouté mes résultats ici après avoir rencontré ce même problème peu de temps après une mise à niveau: http://jasdeep.ca/2013/10/installing-nokogiri-fails-os-x-mavericks/
Le correctif est simplement ces 2 commandes:
J'espère que ça aide.
la source
J'ai eu ce problème aussi. L'exécution a
brew doctor
montré que j'avais une version inattendue de libiconv dans / user / local / lib.Je les ai donc supprimés et j'ai reformé libxml:
Enfin, j'ai installé nokogiri:
la source
Aucune de ces réponses n'a fonctionné pour mon cas particulier, et comme je suis un nouveau, j'ai pensé que ma solution pourrait peut-être aider quelqu'un d'autre.
J'utilise Yosemite et j'utilise Ruby 1.9.3p547. Il y avait une exposition de sécurité pour p547, donc j'essayais de mettre à jour vers Ruby 1.9.3p550 ou supérieur. J'ai utilisé RVM, puis j'ai essayé de migrer mes gemmes et beaucoup d'entre elles n'ont pas fonctionné. Ensuite, j'ai essayé de regrouper l'installation mais cela a échoué et j'ai pensé que c'était peut-être un conflit entre les différents chemins et dépendances, j'ai donc supprimé l'ancienne version de Ruby. Cela a tout cassé.
J'ai continué à recevoir un message disant que le compilateur C était manquant, même si j'avais téléchargé XCode et récemment mis à jour les outils CLI. J'ai trouvé un autre site Web qui m'a dit de télécharger un GCC tiers, ce que j'ai fait. ce qui a tout aggravé.
Maintenant, je reçois un message disant que je dois corriger mes profils et mes PATH ou il pourrait être plus facile de réinstaller OSX. Alors je l'ai fait.
Quoi qu'il en soit, une histoire plus longue simplement longue: la solution qui a finalement fonctionné pour moi était de me débarrasser de RVM et d'utiliser simplement brew pour télécharger la version Ruby que je voulais avant de courir
bundle install
. Installez la version correcte de Nokogiri FIRST.la source
sudo
entraînera l'installation de Nokogiri dans le seul Ruby connu par root, qui est très probablement Ruby installé par Apple à moins d' utiliser Homebrew. Parce que l'OP utilisait RVM, cela signifie que Nokogiri ne serait pas vu par un Ruby géré par RVM, et ne ferait qu'aggraver le problème. L'utilisation asudo
peut-être fonctionné dans ce cas, mais elle ne devrait pas être essayée avec un Ruby géré par RVM ou rbenv. RVM dit spécifiquement de ne pas le faire dans la documentation d'installation .pour Windows, vous pouvez également essayer l'installation locale:
téléchargez la gemme appropriée en fonction de votre environnement.
allez dans le répertoire où vous avez enregistré le fichier gem.
gem install --local nokogiri-1.6.3.1-x86-mingw32.gem
si cela ne fonctionne pas, vous pouvez vérifier si zlib et mingw ou un compilateur c approprié sont installés.
la source
Chaque sacré truc ici ne l'a pas fait pour moi (je ne suis pas entré dans les réinstallation de brew, oy), mais cela l'a finalement fait (trouvé via un rapport de bogue sur un projet sans rapport):
Bonne chance. Yay pour #yakshaving!
la source
Vérifiez la version de vos outils de ligne de commande. Configurez votre machine pour utiliser les outils de ligne de commande Xcode 5.0.X, puis exécutez:
la source