Pourquoi l'installation de Nokogiri sur Mac OS échouer avec libiconv est manquant?
J'ai essayé d'installer Nokogiri sur Mac OS 10.9.3 et quoi que j'essaye, l'installation échoue à la fin avec le message d'erreur suivant:
$ sudo gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.1/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 --with-iconv-include=/usr/local/Cellar/libiconv/1.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib
Building native extensions with: '--with-xml2-include=/usr/local/Cellar/libxml2/2.9.1/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 --with-iconv-include=/usr/local/Cellar/libiconv/1.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib'
This could take a while...
Building nokogiri using packaged libraries.
ERROR: Error installing nokogiri:
ERROR: Failed to build gem native extension.
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb --with-xml2-include=/usr/local/Cellar/libxml2/2.9.1/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 --with-iconv-include=/usr/local/Cellar/libiconv/1.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib
Building nokogiri using packaged libraries.
checking for iconv.h... yes
checking for iconv_open() in iconv.h... no
checking for iconv_open() in -liconv... no
checking for libiconv_open() in iconv.h... no
checking for libiconv_open() in -liconv... no
-----
libiconv is missing. please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies.
-----
*** 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=/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/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
Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/nokogiri-1.6.2.1 for inspection.
Results logged to /Library/Ruby/Gems/2.0.0/gems/nokogiri-1.6.2.1/ext/nokogiri/gem_make.out
Après beaucoup d'aide autour du web, y compris la construction et l'installation de libxml2 et libxslt à l'aide d'infusion et la construction de libiconv à partir des sources (comme décrit dans "L'Installation De Nokogiri"), l'erreur reste la même.
Lorsque vous essayez d'exécuter l'installation de Nokogiri, libxml2 et libxslt semblent bien, mais pas libiconv.
Quelqu'un avec une meilleure connaissance de ces choses savoir comment obtenir Nokogiri installé?
- Vous n'avez pas l'exacte commandes que vous essayez d'utiliser, de sorte que nous allons être de tir dans le noir en essayant de répondre. J'ai toujours utiliser
gem install nokogiri
, mais puis-je utiliser RVM pour gérer mon Mac OS Ruby installe. libxml et libxslt ne sont pas liés à iconv, donc, je vous recommande de poser votre question sur Nokogiri-talk qui est leur forum de support. Je ne me souviens pas d'avoir tout iconv problèmes lors de l'installation de Nokogiri, et je l'ai sur un groupe de machines. - J'ai dans l'intervalle ouvert un ticket sur github: github.com/tenderlove/nokogiri/issues/442 qui contient un peu plus d'informations.
- Voici un lien pour résoudre le même problème sur OSX El Capitan, estebantorr.es/blog/2015/10/02/Nokogiri-en-El-Capitan
- "
sudo gem install nokogiri
". N'utilisez pas desudo
installer des gems ou modifier la valeur par défaut de Rubis. Au lieu d'utiliser rbenv ou RVM pour gérer un distinct Ruby. Cette question est abordée à plusieurs reprises sur un Débordement de Pile. - Avez-vous essayé désinstallation xz avant de nokogiri installer?
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème. Malheureusement, le "L'Installation De Nokogiri" ne couvre pas Iconv questions. Voici comment j'ai résolu le problème.
D'abord installer homebrew, il va faire de votre vie plus facile. Si vous l'avez déjà installé, assurez-vous de saisir les dernières formules de mise à jour comme suit:
Note: Dans OSX 10.9+ vous devrez peut-être installer xCode commande outils pour vous permettre d'installer libiconv.
puis installer une version plus récente de libiconv
puis installez votre bijou
brew install libiconv
il crache: Erreur: Pas de formule pour libiconv Apple distribue libiconv avec OS X, vous pouvez le trouver dans /usr/lib. Certains scripts ne parviennent pas à détecter correctement, veuillez vérifier les formules de solutions.bundle config
commandes qui vous permettent de régler les commutateurs individuels des gemmes dans votre bundle.xcode-select --install
. Le problème est résolu pour moi.brew install libiconv
, vous devrez peut-être installer libiconv manuellement:curl -O http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
tar xvfz libiconv-1.13.1.tar.gz
cd libiconv-1.13.1
./configure --prefix=/usr/local/Cellar/libiconv/1.13.1
make
sudo make install
xcode-select --install
fixe pour moi.brew install libiconv
pour obtenir la bonne formule, utilisez ceci:brew tap homebrew/dupes
Yosemite
(10.10) je n'ai pas eu à faire debrew
choses; tout lexcode-select --install
résolu ce problème pour moi.brew unlink libiconv
et puisgem install nokogiri
a fonctionné pour moi. Il a échoué si j'ai essayé debrew link libiconv
avantgem install nokogiri
--with-iconv-dir=/usr/local/Cellar/libiconv/1.14
Essayez d'utiliser le système de bibliothèques. OSX est livré avec libiconv dans les versions plus récentes, mais les valeurs par défaut du script d'installation semble avoir un problème
Edit: Si l'aide de bundler, comme mentionné par Geoff que vous pouvez faire:
libxml2 version 2.6.21 or later is required!
.libxml2
,libxslt
, etlibiconv
par MacPorts.@Cory solution contient la bonne réponse, mais la solution sur Mavericks est en fait beaucoup plus simple que la solution je suis donc reposter avec seulement les mesures nécessaires.
Sur Mavericks (OS x 10.9+):
Installer Xcode Outils De Ligne De Commande:
puis installez votre bijou:
J'ai finalement été en mesure de résoudre ce problème. Aucune des solutions ci-dessus complètement résolu pour moi.
Je recevais ce message d'erreur lorsque vous
gem install nokogiri
sur OSX Lion 10.7.2. Tout d'abord, cette erreur masque le vrai problème en disant libiconv est manquant, parce que vous obtiendrez l'erreur, même si nokogiri ne peut pas trouver de libxslt ou libxml2, qui, dans mon cas, il ne le pouvait pas.J'ai donc suivi les instructions sur http://nokogiri.org/tutorials/installing_nokogiri.html en vertu de la section Homebrew (légèrement modifié pour tenir compte de la plus récente version de libxml2):
À ce point, j'ai suivi les instructions sur le nokogiri site et essayé
Toutefois, cela a échoué parce que lors de la construction de libxslt à partir de la source, il installe le
/include
dossier dans un funky place. Si vous avez besoin de spécifier lelib
etinclude
dossiers séparément comme suit:Cela ne fonctionne toujours pas (même libiconv erreur), j'ai donc essayé de préciser les trois bibliothèques requises (libxslt, libxml2 et libiconv):
Maintenant j'ai une autre erreur! C'est encore une erreur, mais au moins, c'était différent. Le rendre le processus a échoué avec:
Euh, quoi? Après beaucoup de recherches sur google, je suis tombé sur ce miracle de poste: http://www.refresherate.com/2010/01/08/fixing-ld-warning-in-usrlocalliblibz-dylib-file-is-not-of-required-architecture/
Apparemment OSX Lion est livré avec quelques mauvaises versions de la libz bibliothèque (
libz.dylib, libz.1.dylib, libz.1.2.4.dylib
) et ils doivent être remplacés avec les dernières versions de Xcode SDK. L'article explique mieux que je peux afin de lire le lien ci-dessus pour obtenir des instructions spécifiques.Une fois qu'il a été remplacé, j'ai couru
de nouveau et tout allait bien. J'espère que cela aide quelqu'un d'autre.
Juste ajouter ma voix à la foule, mais mkmf.le journal a dit quelque chose au sujet de ne pas être en mesure de trouver des symboles pour l'architecture x86_64. Je suis tombé sur cette solution:
Peut pas résoudre quoi que ce soit de l'original de la personne, mais cela peut aider quelqu'un.
Note de côté: nokogiri a été mon plus grand obstacle à l'utilisation des applications ruby. Chaque fois que quelqu'un dépend de l'autre version que j'ai de comprendre comment le construire. Et mon problème est différent à chaque fois.
ARCHFLAGS="-arch x86_64" sudo gem install nokogiri -- --use-system-libraries
travaillé ...Je suis en utilisant..
OS X 10.9.4
Homebrew 0.9.4
Voici mon résumé de ce fil pour réussir l'installation de nokogiri, fixation manquant libiconv.
Installer Homebrew http://brew.sh/
Ou de la dernière mise à jour de l'aide de la commande ci-dessous
Installer libxml2 libxslt
Le lien entre les deux libxml2 libxslt
Si vous obtenez avertissement utilisation de --force, il suffit d'utiliser la commande ci-dessous
Installer xCode commande outils pour vous permettre d'installer libiconv
Installer libiconv
Dernière étape, installer nokogiri!
J'ai résolu ce problème sur
Yosemite
de courseRuby 2.1.4
parxcode-select --install
, puisxcode-select --install
ne pas faire - soupir)bundle install
travaillé comme d'habitude.J'ai aussi fait un
brew install libiconv
aussi, mais je ne suis pas convaincu que l'étape était nécessaire.brew install libiconv
est nécessaire -- j'ai jamais pris la peine de trouver le bon paquet et cela a bien fonctionné pour moi. Accordé, il peut avoir été sur ma machine quand j'ai installé nokogiri avec ruby 2.1.1 avant.xcode-select --install
et j'ai pu installer Nokogiri.J'ai essayé beaucoup de choses mais rien n'a fonctionné pour moi. Puis j'ai enfin trouvé le iconv documentation et il a sauvé ma journée!
À la recherche dans le mkmf fichier, il apparaissent que nokogiri (ou gem, je ne sais pas) essayer de trouver des dépendances dans /op/local/. Pour moi c'est pas le bon chemin à la recherche pour.
Forcer nokogiri pour trouver les libs au bon endroit (j'ai utiliser homebrew) a fait le tour pour moi :
Peut-être il ya quelque chose à corriger dans nokogiri...
HTH,
libiconv a été supprimé à partir de Homebrew 0.9 Maintenant il est recommandé de le compiler libiconv à partir de la source, puis de référence de l'installation lorsque vous installez le nokogiri gem. Voir la Nokogiri installer l'Homebrew de 0,9 section sur la Nokogiri page d'installation
Regarder dans le mkmf.fichier journal dans le joyau du répertoire de construction (par exemple, /Bibliothèque/Ruby/Gems/1.8/gems/nokogiri-1.4.4/ext/nokogiri/mkmf.le journal). Qui a beaucoup plus d'info. Dans mon cas, quand j'ai frappé, il a été que Nokogiri spécifiquement ajoute /opt/local/lib dans le chemin de recherche des bibliothèques et GNU Backgammon avait installé une incompatibilité libiconv-il.
En supposant que vous avez installé libxml2 et libxslt avec MacPorts, alors vous pouvez peut-être obtenir cette erreur en raison d'un décalage de l'ordre d'inclure des chemins d'accès et des chemins de liaison utilisé par l'appel à have_func('iconv_open', 'iconv.h')
Simple (patch) solution: supprimer libiconv.* dans /usr/local/lib
même que ci-dessus, c'est la solution pour les homebrew et à l'aide de gem install (appliquer les modifications dépend de votre version)
toutefois, si vous utilisez Gemfile et bundle install, vous devez appliquer le faisceau de config avant de vous installer, voici le code
de nouveau, appliquer les modifications dépend de votre version
espère que cela va vous aider.
de crédit: https://gist.github.com/1344331
J'ai eu le même problème sous Mountain Lion. S'avère que j'avais installé libiconv via rvm paquet précédemment et ce n'est plus nécessaire pour ruby 1.9.3/Mountain Lion/nokogiri.
Suivant les conseils de https://rvm.io/packages/, j'ai supprimé mon $rvm_path répertoire/usr et reconstruit ruby 1.9.3. Par la suite, l'installation de nokogiri était un simple gem install. Pas de déconner avec brew/macports/manuel de source installe!
Vous pourriez aussi le faire sur Mavericks:
gem install nokogiri -- --use-system-bibliothèques=true --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2
Assurez-vous d'avoir xcode installé
Je me battais avec Nokogiri pendant un certain temps aujourd'hui sur OS X 10.10 Yosemite
Mon environnement a été foiré pour une raison quelconque.
which bundle
etwhich gem
me donnaient/usr/bin/bundle
et/usr/bin/gem
au lieu de~/.rbenv/shims/gem
Ce qui a permis de corriger cela pour moi a été
sudo rm -i /usr/bin/gem /usr/bin/bundle
Après que j'ai:
1. changé de revenir à mon répertoire de projet
2. désinstallé le dépendantes
3. (re)-installé l'dépendante de la libs: a fait un
brew install libxml2 libiconv libxslt
4. installé ma version de ruby frais (avec rbenv)
5. ne
gem install bundler
6. et
bundle install
est déroulé sans aucun problème.Nokogiri
était très bien, après que.Pour référence:
gem install nokogiri -v '1.6.6.2' -- --use-system-bibliothèques-avec-xml2-include=$(brew --prefix libxml2)/include/libxml2
cela a fonctionné pour moi sur macos
Vous devez mettre à jour votre homebrew à 0,9
puis suivez ces étapes
Vous devriez vérifier le dossier de la version de bibliothèque.
brew create http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz && brew install libiconv
HOMEBREW UTILISATEURS
Bonne solution pour résoudre ce problème si vous utilisez homebrew:
Choisissez "Obtenir Xcode" à partir de la boîte de dialogue.
Xcode-select étape corrige votre installation de Xcode et Xcode Ligne de Commande Utils de l'installation. J'ai trouvé que je n'ai pas de /usr/include/iconv.h en raison d'un certain genre de problème avec l'O/S, mises à jour ou restauration à partir de sauvegardes. Si vous n'avez pas ce fichier d'en-tête et /usr/lib/libconv.dylib après l'exécution de xcode-select alors vous avez probablement besoin de faire glisser Xcode du dossier de l'Application dans la corbeille et le réinstaller manuellement, puis télécharger les Outils de Ligne de Commande pour Xcode de https://developer.apple.com/downloads/index.action et l'installer.
Alors vous devez supprimer le lien de la libiconv de homebrew. Vous n'avez pas besoin de cela. Et clang sera effectivement ramasser /usr/local/include/iconv.h /usr/include/iconv.h et #define iconv_open à libiconv_open mais alors le lien à l'encontre de /usr/lib/libiconv.dylib qui n'ont pas libiconv_open qui est ce qui provoque la mkmf d'échecs pour trouver libiconv. Ce que vous devez faire est de retirer le lien de iconv.h de sorte que nokogiri ne le trouverez pas.
Puis il suffit de construire nokogiri normalement.
Pour les nouveaux utilisateurs, tout ce que vous devez faire est d'installer xcode avec xcode-choisir et installer nokogiri, mais si vous avez trouvé cette question, alors je suppose que vous avez bâclé l'installation et non une nouvelle installation de Mavericks.
Certains des autres réponses ici ne sont certainement incorrecte. La plupart d'entre eux tentent d'utiliser libiconv de homebrew qui est totalement inutile. Les réponses que
brew link libiconv
sont en fait à l'origine du problème où le bruit devient confus et essaie de lire un homebrew fichier d'en-tête et le lier avec le système de bibliothèques. Les réponses qui suggèrent--use-system-libraries
sont pauvres parce nokogiri doit être lié à l'encontre de ses groupés libxml2 et libxslt bibliothèques parce que d'autres versions de ces bibliothèques sont incompatibles avec elle. Les réponses que vous voulez compiler à partir des sources sont juste désespérément trop compliqué.TL;DR:
RVM UTILISATEURS
Vieux RVM installations peuvent avoir un libiconv se cacher dans votre système rvm répertoires quelque part qui sont en conflit avec les bibliothèques de votre système. Voir https://stackoverflow.com/a/11809261/506908 pour plus d'informations.
MacPorts UTILISATEURS
Si vous avez /opt/local/lib/libiconv.dylib puis nokogiri ajoute que le chemin d'accès à la liste des répertoires qu'il recherche et il va trouver de l'installation de MacPorts similaire à la façon dont elle prend la homebrew libiconv et les conflits avec les bibliothèques du système. Vous pouvez essayer:
Si cela échoue à cause des dépendances, alors vous pouvez essayer de se lier à la MacPorts version directement (non testé):
gem install nokogiri -- --with-iconv-dir=/opt/local
fonctionne très bien avec MacPortslibiconv
installéCe a travaillé pour moi
Je suis tombé sur ce, ce matin... après une mise à jour de Mavericks. Nous avons fait beaucoup de choses. Cependant, si quelqu'un rencontre ce problème, voici quelques choses à essayer.
J'ai couru 'xcode-select --install' ensuite les outils de ligne de commande installé (surprise n'en est pas de mise à jour sur le système d'exploitation ugrade).
J'ai couru 'rvm imploser' (je vais construire revenir plus tard).
Nous avons reconstitué erreur deux fichiers de sortie:
~/.vagrant.d/gems/bijoux/nokogiri-1.6.3.1/ext/nokogiri/gem_make.hors
~/.vagrant.d/gems/gems/nokogiri-1.6.3.1/ext/nokogiri/tmp/x86_64-apple-darwin12.5.0/ports/libxml2/2.8.0/configure.log
Qui semblait indiquer que le compilateur c a l'aide d'un surprenant décor.
J'ai couru "env"
Sortie contenait:
Ces fichiers n'existent pas sur le système de fichiers...
Après tous ces changements se déplacer à un nouveau terminal de windows (donc tout était frais). Installation de vagrant-berkshelf (qui à son tour installe nokogiri) a bien fonctionné.
REMARQUE: lors de l'exécution de " env " dans le frais de la fenêtre il n'y a plus d'un paramètre pour les CC ou CXX...
Des doutes sur l'élément clé de ce, ou si l'ordre des questions, mais a essayé de recréer les pièces qui semblait jouer un rôle dans l'obtention de ce travail.
gem install nokogiri
réussit? Se fanent avec "déjà installé" message ou une installation réussie?Conformément à la documentation, en tant que de OSX 10.9 et Homebrew 9.5+, vous êtes probablement le manque d'outils de développement.
Nokogiri installation
Dépannage
Si vous avez des problèmes de mentionner libiconv manquant qui ressemble à quelque chose comme ceci:
Alors vous êtes probablement manquant de le droit outils de développement. C'est vraiment une solution facile:
Ceci est vérifié de travail sur OSX 10.9 w/xcode du compilateur clang.
J'ai eu ce problème lorsque j'ai mis à jour mon Mac OS Yosemite. J'ai été en mesure de résoudre ce problème en faisant:
J'ai eu un problème similaire et la accepté de répondre à l'habitude de travailler pour moi. Maintenant, cependant, j'ai été voir un nouveau message d'erreur lorsqu'un
gmkdir
commande est manquante comme dans cette question:gem install nokogiri -v '1.5.11" a échoué en raison de faire: /usr/local/bin/gmkdir: Aucun fichier ou répertoire
Ce qui a fonctionné pour moi a été d'abord un peu de nettoyage:
Et puis
brew unlink libiconv
et tout ce que vous avez besoin de unlink (vérifier avecbrew doctor
). Puis, la magie de deux lignes (copié à partir du lié réponse):Étapes simples à suivre avant de commencer la désinstallation et l'installation de quoi que ce soit.
Vérifiez si vous avez CLT (outils de ligne de commande installé):
brew config
voir le CLT version ici si sa pas besoin de réinstallation.
Cela signifie que le problème est avec la permission vous avez réinstallé que bundler gem faire son pas de sudo.
Désinstaller avec bundler
gem uninstall bundler
réinstaller gem bundler
gem install bundler
Point le plus important ici est l'autorisation en vertu de laquelle bundler gem est installé, il ne doit jamais être sudoed.
Tout d'abord assurez-vous de suivre le guide d'installation sur nokogiri: http://nokogiri.org/tutorials/installing_nokogiri.html
Après avoir suivi le guide, j'ai encore eu ce problème. C'est comment je l'ai résolu:
Tout d'abord j'ai installé iconv à l'aide de homebrew:
brew install iconv
Puis je l'ai désinstallé ruby, c'est heureusement très facile avec rvm:
J'ai dû réinstaller ruby avec les options suivantes:
Puis-je créer un sertie avec la nouvelle version de ruby:
Alors je peux enfin installer nokogiri comme ceci:
Dans mon cas, (comme avec scotchi) la compilation a échoué en raison d'une incompatibilité de iconv bibliothèque dans /opt/local/lib.
Par défaut, theNokogiri processus de construction regarde dans /opt/local d'abord.
Pour le forcer à utiliser un répertoire d'installation différent, /usr/local par exemple, n':
Ce post de blog se propose d'installer libiconv manuellement.
Par la suite, nokogiri peut être installé avec un certain nombre de commutateurs dire où trouver libiconv (voir le blog).
Comme une note de côté: Après l'installation de nokogiri, j'ai réussi à installer gollum (installation qui a échoué parce qu'elle ne pouvait pas trouver iconv). Maintenant, je suis toujours confronté à des problèmes, parce que quand je démarre gollum, Python se bloque.
REMARQUE MANQUANT /lib/iconv/iconv.donc fichier dans 2.0.0-p247 qui est présent dans la version 2.0.0-p0 joyaux de l'installation.
Copier le fichier sur
MAINTENANT ÇA FONCTIONNE!
J'ai dû installer gcc d'abord avant de lancer
./configure --prefix=/usr/local/Cellar/libiconv/1.13.1
J'ai suivi les instructions de nokogiri page de l'installation et également installé xcode tools. Mais il n'a toujours pas de travail pour moi.
Puis j'ai vu que
brew install libxml2 libxslt
les sorties de commande suivants (entre autres choses):Donc, je l'exécute et nokogiri a été installé avec succès.
Cela fonctionne pour moi:
Si vous utilisez le système de regroupement, de lui dire d'utiliser l'option:
ref
gem
) en passantbundle
comme un argument.Check it out, et n'hésitez pas à participer, peut-être que nous pouvons faire bouillir de l'un script pour corriger!