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 avoir suivi de nombreuses aides trouvées sur le Web, notamment la construction et l'installation de libxml2 et libxslt à l'aide de brew et la construction de libiconv à partir des sources (comme décrit dans " Installer Nokogiri "), l'erreur reste la même.
Lorsque vous essayez d'exécuter l'installation pour Nokogiri, libxml2 et libxslt semblent bien se trouver, mais pas libiconv.
Quelqu'un avec une meilleure connaissance de ces choses sait comment installer Nokogiri?
gem install nokogiri
, mais j'utilise ensuite RVM pour gérer mes installations Mac OS Ruby. libxml et libxslt ne sont pas liés à iconv, je vous recommande donc de poser votre question sur Nokogiri-talk qui est leur forum de support. Je ne me souviens pas d'avoir eu des problèmes iconv lors de l'installation de Nokogiri, et je l'ai sur un tas de machines.sudo gem install nokogiri
". Ne pas utilisersudo
pour installer des gemmes ou modifier le Ruby par défaut. Utilisez plutôt rbenv ou RVM pour gérer un Ruby distinct. Ceci est couvert plusieurs fois sur Stack Overflow.Réponses:
J'ai eu le même problème. Malheureusement, " Installer Nokogiri " ne couvre pas les problèmes Iconv. Voici comment j'ai résolu le problème.
Installez d'abord homebrew , cela vous facilitera la vie. Si vous l'avez déjà installé, assurez-vous de récupérer les dernières formules en mettant à jour comme suit:
Remarque : Sous OSX 10.9+, vous devrez peut-être installer les outils de commande xCode pour vous permettre d'installer libiconv.
puis installez une version plus récente de libiconv
puis installez votre bijou
la source
brew install libiconv
cracher: Erreur: Aucune formule disponible pour libiconv Apple distribue libiconv avec OS X, vous pouvez le trouver dans / usr / lib. Certains scripts de construction ne parviennent pas à le détecter correctement, veuillez vérifier les formules existantes pour trouver des solutions.xcode-select --install
. Cela a résolu le problème pour moi.brew install libiconv
à obtenir la bonne formule, utilisez ceci:brew tap homebrew/dupes
Yosemite
(10.10) Je n'ai pas eu à faire lesbrew
choses; juste lexcode-select --install
résolu ce problème pour moi.Essayez d'utiliser les bibliothèques système. OSX est livré avec libiconv dans les versions plus récentes, mais le script d'installation par défaut semble avoir un problème
Edit: Si vous utilisez bundler, comme mentionné par Geoff, vous pouvez faire:
la source
libxml2 version 2.6.21 or later is required!
.La solution de @ Cory contient la bonne réponse, mais la solution sur Mavericks est en fait beaucoup plus simple que la solution supérieure, donc je republie uniquement les étapes nécessaires.
Sur Mavericks (OSX 10.9+):
Installez les outils de ligne de commande Xcode:
puis installez votre gemme:
la source
J'ai enfin pu résoudre ce problème. Aucune des solutions ci-dessus ne l'a complètement résolu pour moi.
J'obtenais cette erreur en essayant
gem install nokogiri
sur OSX Lion 10.7.2. Tout d'abord, cette erreur masque le vrai problème en disant que libiconv est manquant, car vous obtiendrez la même erreur même si nokogiri ne peut pas trouver libxslt ou libxml2, ce qui dans mon cas, il ne le pouvait pas.J'ai donc suivi les instructions sur http://nokogiri.org/tutorials/installing_nokogiri.html sous la section Homebrew (légèrement modifiée pour tenir compte d'une version plus actuelle de libxml2):
À ce stade, j'ai suivi les instructions sur le site nokogiri et essayé
Cependant, cela a toujours échoué car lors de la construction de libxslt à partir des sources, il installe le
/include
dossier dans un endroit génial. Vous devez donc spécifier les dossierslib
etinclude
séparément comme suit:Cela ne fonctionnait toujours pas (même erreur libiconv), j'ai donc essayé de spécifier les trois bibliothèques requises (libxslt, libxml2 et libiconv):
Maintenant, j'ai une erreur différente! C'était toujours une erreur mais au moins c'était différent. Le processus de création a échoué avec:
Euh, quoi? Après beaucoup de recherches sur Google, je suis tombé sur ce post miracle: 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 de mauvaises versions de la bibliothèque libz (
libz.dylib, libz.1.dylib, libz.1.2.4.dylib
) et elles doivent être remplacées par les dernières versions du SDK Xcode. L'article l'explique mieux que moi, alors lisez le lien ci-dessus pour obtenir des instructions spécifiques.Une fois que ceux-ci ont été remplacés, j'ai couru
encore et tout allait bien. J'espère que ça aidera quelqu'un d'autre.
la source
J'ajoute simplement ma voix à la foule, mais mkmf.log a dit quelque chose à propos de l'impossibilité de trouver des symboles pour l'architecture x86_64. Je suis tombé sur cette solution:
Peut ne rien résoudre pour le demandeur d'origine, mais cela peut aider quelqu'un.
Note latérale: nokogiri a été mon plus grand obstacle à l'utilisation des applications rubis. Chaque fois que quelqu'un dépend d'une version différente, je dois trouver comment le construire. Et mon problème est différent à chaque fois.
la source
ARCHFLAGS="-arch x86_64" sudo gem install nokogiri -- --use-system-libraries
travaillé ...gem install nokogiri -v '1.6.6.2' -- --use-system-libraries --with-xml2-include=$(brew --prefix libxml2)/include/libxml2
cela a fonctionné pour moi sur macos. Cela fonctionne aussi avec la version
1.6.6.4
la source
--with-xml2-include
option pour moi sur Catalina ...gem install nokogiri --version=1.6.6.2 -- --use-system-libraries
J'utilise .. OS X 10.9.4 Homebrew 0.9.4
Voici mon résumé de ce fil pour installer avec succès nokogiri, en corrigeant libiconv manquant.
Installez Homebrew http://brew.sh/ Ou mettez à jour la dernière à l'aide de la commande ci-dessous
Installez libxml2 libxslt
Lier les deux libxml2 libxslt
Si vous recevez un avertissement pour utiliser --force, utilisez simplement la commande ci-dessous
Installez les outils de commande xCode pour vous permettre d'installer libiconv
Installez libiconv
Dernière étape, installez nokogiri!
la source
Je résolu ce problème en
Yosemite
cours d' exécutionRuby 2.1.4
parxcode-select --install
, puisxcode-select --install
ne fait pas - soupir)bundle install
fonctionné comme d'habitude.J'ai aussi fait un
brew install libiconv
aussi mais je ne suis pas convaincu qu'une étape était nécessaire.la source
brew install libiconv
soit nécessaire - je n'ai jamais pris la peine de trouver le bon package et cela a bien fonctionné pour moi. Certes, cela peut avoir été sur ma machine depuis le moment où j'ai installé nokogiri avec ruby 2.1.1 auparavant.xcode-select --install
j'ai couru et j'ai pu installer Nokogiri.J'ai essayé beaucoup de choses mais rien n'a fonctionné pour moi. Ensuite, j'ai enfin trouvé la documentation iconv et cela m'a sauvé la journée!
la source
En regardant dans le fichier mkmf, il semble que nokogiri (ou gem, je ne sais pas) essaie de trouver des dépendances dans / op / local /. Pour moi, ce n'est pas la bonne voie pour les rechercher.
Forcer nokogiri à trouver les libs au bon endroit (j'utilise homebrew) a fait l'affaire pour moi:
Peut-être qu'il y a quelque chose à réparer dans nokogiri ...
HTH,
la source
libiconv a été supprimé de Homebrew 0.9 Il est maintenant recommandé de compiler libiconv à partir des sources, puis de référencer l'installation lorsque vous installez le gem nokogiri. Voir les instructions d'installation de Nokogiri dans la section Homebrew 0.9 sur la page d'installation de Nokogiri
la source
Regardez dans le fichier mkmf.log dans le répertoire de construction du gem (par exemple /Library/Ruby/Gems/1.8/gems/nokogiri-1.4.4/ext/nokogiri/mkmf.log). Cela a beaucoup plus d'informations. Dans mon cas, quand j'ai frappé ceci, c'est que Nokogiri ajoute spécifiquement / opt / local / lib au chemin de recherche de la bibliothèque et GNU Backgammon y avait installé une libiconv incompatible.
la source
En supposant que vous ayez installé libxml2 et libxslt avec MacPorts, vous pourriez toujours obtenir cette erreur en raison d'une incompatibilité de l'ordre des chemins d'inclusion et des chemins de lien utilisés par l'appel à have_func ('iconv_open', 'iconv.h')
Solution simple (patch): supprimez libiconv. * Dans / usr / local / lib
la source
comme ci-dessus, c'est la solution pour les homebrews et l'utilisation de gem install (appliquer les modifications dépend de votre version)
cependant, si vous utilisez Gemfile et l'installation du bundle, vous devez appliquer la configuration du bundle avant d'installer, voici le code
encore une fois, appliquer les modifications dépend de votre version
J'espère que ceci vous aidera.
crédit: https://gist.github.com/1344331
la source
J'ai eu des problèmes similaires sur Mountain Lion. Il s'avère que j'avais déjà installé libiconv via le package rvm et que 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 répertoire $ rvm_path / usr et reconstruit ruby 1.9.3. Par la suite, l'installation de nokogiri était une simple installation de gemme. Pas de problème avec les installations de brew / macports / sources manuelles!
la source
Vous pouvez également 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 simplement que xcode est installé
la source
Je me battais avec Nokogiri pendant un moment aujourd'hui sur OS X 10.10 Yosemite
Mon environnement était en désordre 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 m'a aidé à le corriger était
sudo rm -i /usr/bin/gem /usr/bin/bundle
Après cela, j'ai: 1. retourné au répertoire de mon projet 2. désinstallé les dépendants 3. (ré) -installé les libs dépendants: fait un
brew install libxml2 libiconv libxslt
4. installé ma version ruby fraîche (avec rbenv) 5. faitgem install bundler
6. etbundle install
exécuté sans aucune problèmes.Nokogiri
était bien après cela.Pour référence:
la source
Vous devez mettre à jour votre homebrew vers 0.9
puis suivez ces étapes
Vous devez vérifier la version de la bibliothèque de dossiers.
la source
brew create http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz && brew install libiconv
UTILISATEURS HOMEBREW
Solution correcte pour résoudre ce problème si vous utilisez homebrew:
Choisissez "Get Xcode" dans la boîte de dialogue.
L'étape xcode-select corrige votre installation Xcode et Xcode Command Line Utils. J'ai trouvé que je n'avais pas /usr/include/iconv.h en raison d'une sorte de problème avec les mises à niveau O / S ou les restaurations à partir de sauvegardes. Si vous n'avez pas ce fichier d'en-tête et /usr/lib/libconv.dylib après avoir exécuté xcode-select, vous devrez probablement faire glisser Xcode du dossier Application vers la corbeille et réinstaller puis télécharger manuellement les outils de ligne de commande pour Xcode à partir de https://developer.apple.com/downloads/index.action et installez-le.
Ensuite, vous devez dissocier le libiconv de homebrew. Vous n'en avez pas besoin. Et clang récupérera en fait /usr/local/include/iconv.h sur /usr/include/iconv.h et #define iconv_open en libiconv_open mais établira ensuite un lien avec /usr/lib/libiconv.dylib qui n'a pas libiconv_open qui est ce qui cause l'échec de mkmf à trouver libiconv. Ce que vous devez faire est de supprimer le lien dans iconv.h afin que nokogiri ne le trouve pas.
Ensuite, construisez simplement nokogiri normalement.
Pour les nouveaux utilisateurs, tout ce que vous devriez faire est d'installer xcode avec xcode-select et d'installer nokogiri, mais si vous avez trouvé cette question, vous avez probablement une installation bâclée et non une nouvelle installation de Mavericks.
Certaines des autres réponses ici sont certainement incorrectes. La plupart d'entre eux essaient d'utiliser libiconv en dehors de l'homebrew, ce qui est totalement inutile. Les réponses qui
brew link libiconv
causent réellement le problème où clang devient confus et essaie de lire un fichier d'en-tête homebrew et de créer un lien avec les bibliothèques système. Les réponses--use-system-libraries
suggérées sont médiocres car nokogiri doit être lié à ses bibliothèques libxml2 et libxslt intégrées car les autres versions de ces bibliothèques sont incompatibles avec lui. Les réponses qui veulent que vous compiliez à partir de sources sont tout simplement excessivement compliquées.TL; DR:
UTILISATEURS RVM
Les anciennes installations RVM peuvent avoir un libiconv caché dans vos répertoires rvm quelque part en conflit avec vos bibliothèques système. Voir https://stackoverflow.com/a/11809261/506908 pour plus d'informations.
UTILISATEURS MacPorts
Si vous avez /opt/local/lib/libiconv.dylib, nokogiri ajoute ce chemin à la liste des répertoires qu'il recherche et il trouvera l'installation de MacPorts similaire à la façon dont il récupère le homebrew libiconv et entre en conflit avec les bibliothèques système. Tu peux essayer:
Si cela échoue en raison de dépendances, vous pouvez essayer de lier directement la version MacPorts (non testée):
la source
gem install nokogiri -- --with-iconv-dir=/opt/local
fonctionne très bien avec MacPortslibiconv
installéCelui-ci a fonctionné pour moi
la source
Je suis tombé sur ça, ce matin ... après une mise à niveau vers Mavericks. Nous avons fait beaucoup de choses. Cependant, si quelqu'un a ce problème, voici quelques choses à essayer.
J'ai exécuté 'xcode-select --install' puis j'ai installé les outils de ligne de commande (surpris que cela n'ait pas été mis à jour lors de la mise à niveau du système d'exploitation). J'ai lancé 'rvm implode' (je le reconstruirai plus tard).
Nous avons reconstitué deux fichiers de sortie d'erreur:
~ / .vagrant.d / gems / gems / nokogiri-1.6.3.1 / ext / nokogiri / gem_make.out
~ / .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
Ce qui semblait indiquer que le compilateur c utilisait un paramètre surprenant.
J'ai couru 'env'
Sortie contenue:
Ces fichiers n'existaient pas sur le système de fichiers ...
Après tous ces changements, passer à une nouvelle fenêtre de terminal (donc tout était frais). L'installation de vagrant-berkshelf (qui à son tour installe nokogiri) a bien fonctionné.
REMARQUE: lors de l'exécution de 'env' dans la nouvelle fenêtre, il n'y avait plus de paramètre pour CC ou CXX ...
Incertain sur la partie clé de ceci, ou si l'ordre est important, mais a essayé de recréer les parties qui semblaient jouer un rôle pour que cela fonctionne.
la source
gem install nokogiri
réussit? Wither avec le message «déjà installé» ou une installation réussie?Selon la documentation, à partir d'OSX 10.9 et Homebrew 9.5+, il vous manque probablement les outils de développement.
Installation de Nokogiri
Dépannage
Si vous rencontrez des problèmes en mentionnant l'absence de libiconv qui ressemble à ceci:
Ensuite, il vous manque probablement les bons outils de développement. C'est une solution vraiment simple:
Ceci est vérifié en travaillant sur le compilateur clang d'OSX 10.9 w / xcode.
la source
J'ai eu ce problème lorsque j'ai mis à niveau mon Mac OS vers Yosemite. J'ai pu résoudre ce problème en faisant:
la source
J'avais un problème similaire et la réponse acceptée fonctionnait pour moi. Maintenant, cependant, j'ai vu un nouveau message d'erreur où une
gmkdir
commande est manquante comme dans cette question:gem installer nokogiri -v '1.5.11' a échoué en raison de make: / usr / local / bin / gmkdir: aucun fichier ou répertoire de ce type
Ce qui a fonctionné pour moi, c'est d'abord un petit nettoyage:
Et puis
brew unlink libiconv
et tout ce dont vous avez besoin pour dissocier (vérifiez avecbrew doctor
). Ensuite, les deux lignes magiques (copiées à partir de la réponse liée):la source
Étapes simples à suivre avant de commencer à désinstaller et à installer quoi que ce soit. Vérifiez si vous avez CLT (outils de ligne de commande installés):
brew config
voir la version CLT ici si elle est installée sans besoin de réinstallation.
Cela signifie que le problème est avec la permission que vous avez réinstallé uniquement le gem de bundler, ce qui n'est pas sudo. Désinstaller le bundler avec
gem uninstall bundler
réinstaller le bundler gemgem install bundler
Le point le plus important ici est la permission sous laquelle le bundler gem est installé, il ne doit jamais être sudoed.
la source
Assurez-vous tout d'abord de suivre le guide d'installation sur nokogiri: http://nokogiri.org/tutorials/installing_nokogiri.html
Après avoir suivi le guide, j'avais toujours ce problème. Voici comment je l'ai résolu:
Tout d'abord, j'ai installé iconv en utilisant homebrew: brew install iconv
Ensuite, j'ai désinstallé ruby, heureusement c'est très facile avec rvm:
Ensuite, j'ai dû réinstaller ruby avec les options suivantes:
Ensuite, je crée un ensemble de gemmes avec la nouvelle version ruby:
Ensuite, je peux enfin installer nokogiri comme ceci:
la source
Dans mon cas, (comme avec scotchi) la construction a échoué en raison d'une bibliothèque iconv incompatible dans / opt / local / lib. Par défaut, le processus de construction de Nokogiri regarde d'abord / opt / local. Pour le forcer à utiliser un autre répertoire d'installation, / usr / local par exemple, faites:
la source
Ce billet de blog propose d'installer libiconv manuellement.
Par la suite, nokogiri peut être installé avec un certain nombre de commutateurs lui indiquant où trouver libiconv (voir l'article du blog).
En remarque: après avoir installé nokogiri, j'ai réussi à installer gollum (dont l'installation a également échoué car il n'a pas pu trouver iconv). Maintenant, je suis toujours confronté à des problèmes, car lorsque je lance gollum, Python plante.
la source
NOTEZ LE fichier /lib/iconv/iconv.so MANQUANT dans 2.0.0-p247 qui est présent dans l'installation de gems 2.0.0-p0.
Copiez le fichier
MAINTENANT ÇA MARCHE!
la source
J'ai dû installer gcc avant de courir
./configure --prefix=/usr/local/Cellar/libiconv/1.13.1
la source