Pourquoi l'installation de Nokogiri sur Mac OS échoue - t-elle avec libiconv?
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 beaucoup d'Aide trouvée autour du web, y compris construire et installer libxml2 et libxslt en utilisant brew et construire libiconv à partir des sources (comme décrit dans " installer Nokogiri "), l'erreur reste la même.
en essayant d'exécuter le installation pour Nokogiri, libxml2 et libxslt semblent bien, mais pas libiconv.
quiconque ayant une meilleure connaissance de ces choses sait comment faire installer Nokogiri?
30 réponses
j'ai eu le même problème. Malheureusement le" installant Nokogiri " ne couvre pas les problèmes Iconv. Voici comment j'ai résolu le problème.
Première installation homebrew , il va faire de votre vie plus facile. Si vous l'avez déjà installé, assurez-vous de saisir les dernières formules en mettant à jour comme ceci:
brew update
Note : dans OSX 10.9+ vous pouvez avoir besoin d'installer des outils de commande xCode pour vous permet d'installer libiconv.
xcode-select --install
puis installer une nouvelle version de libiconv
brew install libiconv
puis liez vos nouveaux liens iconv:
brew link libiconv
puis installez votre gemme
gem install nokogiri -- --with-iconv-dir=/usr/local/Cellar/libiconv/1.14
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
gem install nokogiri -- --use-system-libraries
Edit: Si l'aide de bundler, comme mentionné par Geoff vous pouvez le faire:
bundle config build.nokogiri --use-system-libraries
la solution de @Cory contient la bonne réponse, mais la solution sur Mavericks est en fait beaucoup plus simple que la solution de haut donc je repotting avec seulement les étapes nécessaires.
sur Mavericks (OSX 10.9+):
Installer Xcode Outils De Ligne De Commande:
xcode-select --install
puis installez votre gemme:
gem install nokogiri
j'ai finalement pu résoudre ce problème. Aucune des solutions ci-dessus complètement résolu pour moi.
j'ai eu cette erreur en essayant de gem install nokogiri
sur OSX Lion 10.7.2. Tout d'abord, cette erreur masque le vrai problème en disant que libiconv est absent, parce que vous obtiendrez la même erreur même si nokogiri ne peut pas trouver libxslt ou libxml2, ce qui dans mon cas, il ne pouvait pas.
alors j'ai suivi les instructions sur http://nokogiri.org/tutorials/installing_nokogiri.html sous la rubrique Homebrew (légèrement modifiée pour tenir compte d'une version plus récente de libxml2):
brew install libxml2
brew link libxml2
# install libxslt from source
wget ftp://xmlsoft.org/libxml2/libxslt-1.1.26.tar.gz
tar -zxvf libxslt-1.1.26.tar.gz
cd libxslt-1.1.26
./configure --prefix=/usr/local/Cellar/libxslt/1.1.26 --with-libxml-prefix=/usr/local/Cellar/libxml2/2.7.8
make
sudo make install
à ce point j'ai suivi les directions sur le site de nokogiri et essayé
gem install nokogiri -- --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26
cependant, cela a échoué parce que lors de la construction de libxslt à partir des sources, il installe le dossier /include
dans un endroit obscur. Vous devez donc spécifier le lib
et include
dossiers séparément comme ainsi:
gem install nokogiri -- --with-xslt-lib=/usr/local/Cellar/libxslt/1.1.26/lib --with-xslt-include=/usr/local/Cellar/libxslt/1.1.26/include/libxslt
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):
gem install nokogiri -- --with-xslt-lib=/usr/local/Cellar/libxslt/1.1.26/lib --with-xslt-include=/usr/local/Cellar/libxslt/1.1.26/include/libxslt --with-iconv-dir=/usr/local/Cellar/libiconv/1.14 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8
maintenant j'ai une erreur différente! C'est encore une erreur, mais au moins, c'était différent. Le processus de fabrication a échoué avec:
in /opt/local/lib/libz.1.dylib, file was built for unsupported file format which is not the architecture being linked (x86_64) for architecture x86_64
quoi? Après beaucoup de googling, je suis tombé sur ce poteau 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 quelques mauvaises versions de la libz de la 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 l'explique mieux que je ne peux donc lire le lien ci-dessus pour des instructions spécifiques.
une fois ceux-ci remplacés, j'ai couru
gem install nokogiri -- --with-xslt-lib=/usr/local/Cellar/libxslt/1.1.26/lib --with-xslt-include=/usr/local/Cellar/libxslt/1.1.26/include/libxslt --with-iconv-dir=/usr/local/Cellar/libiconv/1.14 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8
encore une fois et tout allait bien. J'espère que cela aide quelqu'un d'autre.
j'ajoute juste ma voix à la foule, mais mkmf.log a dit quelque chose à propos de ne pas être en mesure de trouver des symboles pour l'architecture x86_64. Je suis tombé sur cette solution:
sudo env ARCHFLAGS="-arch x86_64" gem install nokogiri -- --use-system-libraries
ne résoudra peut-être rien pour l'asker original, mais cela pourrait aider quelqu'un.
Side Note: nokogiri a été ma plus grande barrière à l'utilisation des applications ruby. Chaque fois que quelqu'un dépend d'une version différente, je dois trouver comment la construire. Et mon problème est différent à chaque fois.
j'utilise.. OS X 10.9.4 Homebrew 0.9.4
Voici mon summery de ce thread pour réussir à installer nokogiri, en réparant libiconv manquant.
Install Homebrew http://brew.sh / Ou mettre à jour au plus tard en utilisant la commande ci-dessous
brew update
Install libxml2 libxslt
brew install libxml2 libxslt
le Lien entre les deux libxml2 libxslt
brew link libxml2 libxslt
si vous recevez l'avertissement d'utiliser --la force, il suffit d'utiliser la commande ci-dessous
brew link --force libxml2 libxslt
installer les outils de commande xCode pour vous permettre d'installer libiconv
xcode-select --install
Installer libiconv
wget 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
dernière étape, Installer nokogiri!
gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.8.0/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.8.0/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib
j'ai résolu ce problème sur Yosemite
tournant Ruby 2.1.4
par
- assurez-vous d'avoir le xCode 6.1 installé, puis
-
xcode-select --install
, puis - dans L'AppStore cliquez sur updates et installez la version la plus récente des outils en ligne de commande (qui apparemment
xcode-select --install
ne fait pas-soupir) - puis
bundle install
ont fonctionné normalement.
j'ai aussi fait un brew install libiconv
mais je ne suis pas convaincu que step était nécessaire.
j'ai essayé beaucoup de choses mais rien n'a fonctionné pour moi. Puis j'ai finalement trouvé la documentation iconv et il a sauvé ma journée!
en regardant dans le fichier mkmf, il semble que nokogiri (ou gem, Je ne sais pas) essaye de trouver des dépendances dans /op/local/. Pour moi, ce n'est pas le bon chemin pour les chercher.
Forcer nokogiri pour trouver les libs au bon endroit (j'ai utiliser homebrew) a fait le tour pour moi :
$ gem install nokogiri -- --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8/
il y a peut-être quelque chose à régler à nokogiri...
HTH,
libiconv a été supprimé de Homebrew 0.9 il est maintenant recommandé de compiler libiconv à partir de la source, puis de faire référence à l'installation lorsque vous installez le gem nokogiri. Voir les instructions D'installation Nokogiri sous la rubrique Homebrew 0.9 sur la page d'installation Nokogiri
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.journal.) Qui a beaucoup plus d'info. Dans mon cas, lorsque J'ai cliqué sur ceci, C'est que Nokogiri a ajouté spécifiquement /opt/local/lib au chemin de recherche de la bibliothèque et que GNU Backgammon y avait installé un libiconv incompatible.
en supposant que vous avez installé libxml2 et libxslt avec MacPorts, alors vous pourriez encore avoir cette erreur due à une inadéquation de l'ordre des chemins include et des chemins de liaison utilisés par l'appel à have_func('iconv_open', 'iconv.h')
Simple (patch) solution: delete libiconv.* in / usr/local / lib
$ gem install nokogiri -- --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8/
comme ci-dessus, c'est la solution pour homebrew et en utilisant gem install (appliquer les modifications dépend de votre version)
cependant, si vous utilisez Gemfile et bundle install, vous devez appliquer la configuration bundle avant d'installer, ici le code
$ bundle config build.nokogiri --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8/ --with-iconv-dir=/usr/local/Cellar/libiconv/1.14
encore une fois, appliquer les modifications dépend de votre version
espérons que cela vous aidera.
crédit: https://gist.github.com/1344331
J'ai eu le même problème sur Mountain Lion. Il s'avère que j'avais installé libiconv via le paquet rvm précédemment et ce n'est plus nécessaire pour ruby 1.9.3/Mountain Lion/nokogiri.
suivant le Conseil 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 a été une installation simple gem. Ne pas jouer avec brew / macports / manuel d'installation des sources!
, Vous pouvez aussi le faire sur Mavericks:
gem install nokogiri -- -- use-system-libraries=true --with-xml2-include = /Applications/Xcode.app/Contents/Développeur/plates-formes/MacOSX.plateforme/développeur/SDKs / MacOSX10.9.sdk/usr/include / libxml2
assurez-vous d'avoir xcode installé
je me suis battu avec Nokogiri pendant un moment aujourd'hui sur OS X 10.10 Yosemite
mon environnement a été perturbé pour une raison quelconque.
which bundle
et which gem
me donnaient /usr/bin/bundle
et /usr/bin/gem
au lieu de ~/.rbenv/shims/gem
ce qui a aidé à corriger pour moi était sudo rm -i /usr/bin/gem /usr/bin/bundle
après cela je:
1. retour à mon répertoire de projets
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 ruby fresh (avec rbenv)
5. did gem install bundler
6. et bundle install
a fonctionné sans aucun problème.
Nokogiri
était bien après ça.
pour référence:
╰─% cat .bundle/config
---
BUNDLE_PATH: vendor/bundle
BUNDLE_DISABLE_SHARED_GEMS: '1'
BUNDLE_JOBS: 4
╰─% which ruby bundle gem
~/.rbenv/shims/ruby
~/.rbenv/shims/bundle
~/.rbenv/shims/gem
vous avez besoin de mettre à niveau votre home-brew à 0.9
puis suivez ces étapes
brew install libxml2 libxslt
brew link libxml2 libxslt
wget 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
sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2
gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.0/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.0/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib
vous devez vérifier deux fois la version de la bibliothèque de dossiers.
HOMEBREW USERS
bonne solution pour résoudre ce problème si vous utilisez homebrew:
xcode-select --install
choisissez "Get Xcode" dans la boîte de dialogue.
brew unlink libiconv
gem install nokogiri
le pas xcode-select corrige votre installation Xcode et votre installation Utils en ligne de commande Xcode. J'ai trouvé que je n'avais pas /usr/include/iconv.h en raison d'une sorte de problème avec les mises à jour O/S ou restaure des sauvegardes. Si vous Je n'ai pas ce fichier d'en-tête et /usr/lib/libconv.dylib après avoir exécuté xcode-select, vous aurez très probablement besoin de faire glisser Xcode du dossier de L'Application à la corbeille et de réinstaller puis de télécharger manuellement les outils de ligne de commande pour Xcode à partir de https://developer.apple.com/downloads/index.action et installez ça.
alors vous devez débloquer le libiconv de homebrew. Vous n'avez pas besoin de cela. Et llvm va réellement prendre /usr/local/include / iconv.h /usr/include/iconv.h et # définira iconv_open à libiconv_open, puis liera avec / usr/lib / libiconv.dylib qui n'a pas libiconv_open ce qui est la cause des échecs mkmf pour trouver libiconv. Ce que vous devez faire est de supprimer le lien dans iconv.pour que nokogiri ne le trouve pas.
alors construisez nokogiri normalement.
Pour les nouveaux utilisateurs, tout ce que vous devez faire est d'installer xcode avec xcode-select et installez nokogiri, mais si vous avez trouvé cette question alors probablement vous avez une installation bâclée et pas une nouvelle installation de Mavericks.
certaines des autres réponses ici sont certainement incorrectes. 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 la cause du problème où clang devient confus et tente de lire un fichier d'en-tête homebrew et lien avec les bibliothèques du système. Réponse qui suggèrent --use-system-libraries
sont pauvres parce que nokogiri a besoin d'être lié avec ses bibliothèques libxml2 et libxslt parce que d'autres versions de ces bibliothèques sont incompatibles avec elle. Les réponses qui veulent que vous compiliez à partir de sources sont simplement désespérément compliquées.
TL; DR:
- mise à niveau et / ou réparation de votre installation Xcode "1519290920 rompre le lien de votre homebrew libiconv depuis en essayant de l'utiliser seulement les causes des problèmes
- construire nokogiri normalement
RVM USERS
les anciennes installations RVM peuvent avoir un libiconv caché dans vos répertoires rvm quelque part qui sont en conflit avec vos bibliothèques système. Voir https://stackoverflow.com/a/11809261/506908 pour plus d'information.
utilisateurs de MacPorts
Si vous avez /opt/local/lib / lib / libiconv.dylib puis nokogiri Ajoute ce chemin à la liste des répertoires qu'il recherche et il trouvera l'installation MacPorts similaire à la façon dont il récupère le libiconv et entre en conflit avec les bibliothèques système. Vous pouvez essayer:
sudo port uninstall libiconv
si cela échoue en raison de dépendances, alors vous pouvez essayer de lier directement avec la version MacPorts (non testée):
gem install nokogiri -- --with-iconv-dir=/opt/local
celui-ci a travaillé pour moi
sudo env ARCHFLAGS=" - arch x86_64 " gem install nokogiri: 1.6.6.2 -- -- use-system-libraries --with-xml= / usr / local/Cellar / libxml2/2.9.3 / --with-iconv-dir= / usr/local/Cellar/libiconv / 1.14
j'ai vu ça ce matin... après une mise à niveau vers Mavericks. Nous avons fait beaucoup de choses. Cependant, si quelqu'un rencontre ce problème, voici quelques choses à essayer.
j'ai lancé 'xcode-select --install' puis j'ai installé les outils en ligne de commande (surpris que cela n'ait pas été mis à jour sur la plateforme OS). J'ai lancé 'RVM implode' (je vais le reconstruire plus tard).
nous avons assemblé deux fichiers de sortie d'erreur:
~ / .Vagabond.d/gems/bijoux/nokogiri-1.6.3.1/ext/nokogiri/gem_make.sortie 151920920"
~/.Vagabond.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 semble indiquer que le compilateur c utilise un réglage surprenant.
j'ai couru " env "
sortie contenue:
...
CXX=/usr/local/opt/apple-gcc42/bin/g++-4.2
...
CC=/usr/local/opt/apple-gcc42/bin/gcc-4.2
...
ces fichiers n'existaient pas dans le système de fichiers...
après tous ces changements se déplaçant vers un nouveau terminal windows (donc tout était frais). L'Installation de vagrant-berkshelf (qui à son tour installe nokogiri) a bien fonctionné.
NOTE: lorsqu'on exécute 'env' dans la fenêtre fresh, il n'y a plus de paramètre pour CC ou CXX...
incertain sur la partie clé de ceci, ou si l'ordre importe, mais a essayé de recréer les parties qui ont semblé jouer un rôle dans faire cela fonctionner.
selon la documentation, à partir de OSX 10.9 et Homebrew 9.5+, vous manquez probablement les outils de développement.
dépannage
si vous avez des problèmes en mentionnant libiconv manquant qui ressemble à quelque chose comme ceci:
Installing nokogiri (1.6.2.1) Building nokogiri using packaged libraries.
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/usr/local/rvm/rubies/ruby-2.0.0-p0/bin/ruby extconf.rb
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 ***
il vous manque probablement les bons outils de développement. C'est une solution très facile:
brew unlink gcc-4.2 # you might not need this step
gem uninstall nokogiri
xcode-select --install
gem install nokogiri
ceci est vérifié en travaillant sur le compilateur clang D'OSX 10.9 w/ xcode.
j'ai eu ce problème quand J'ai mis à jour mon Mac OS en Yosemite. J'ai pu résoudre ce problème en faisant:
xcode-select --install
brew uninstall libiconv
brew install libiconv
gem install nokogiri
j'ai eu un problème similaire et la réponse acceptée avait l'habitude de travailler pour moi. Maintenant, cependant j'ai vu un nouveau message d'erreur où une commande gmkdir
manque comme dans cette question:
ce qui a fonctionné pour moi A d'abord été un petit nettoyage:
brew uninstall libiconv
brew uninstall libxml2
brew uninstall libxslt
puis brew unlink libiconv
et tout ce que vous devez débloquer (vérifiez avec brew doctor
). Ensuite, les deux lignes magiques (copiées de la réponse liée):
brew install coreutils
gem install nokogiri
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'avais encore ce problème. Voici comment je l'ai résolu:
tout d'abord, j'ai installé iconv en utilisant homebrew: brew install iconv
puis j'ai désinstallé ruby, heureusement c'est très facile avec rvm:
rvm uninstall 1.9.2
puis j'ai dû réinstaller ruby avec les options suivantes:
CC=gcc-4.2 rvm install 1.9.2-p290 --with-iconv-dir=/usr/local/Cellar/libiconv/1.13.1
puis je crée un gemset avec la nouvelle version ruby:
rvm use 1.9.2@coolproject
alors je peux enfin installer nokogiri comme ceci:
gem install nokogiri -v=1.4.4 -- --with-xml2-include=/usr/local/Cellar/libxml2/2.7.8/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.7.8/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26
dans mon cas, (comme avec scotchi) la construction a échoué à cause d'une bibliothèque iconv incompatible dans /opt/local/lib. Par défaut, le processus de construction de theNokogiri regarde /opt / local en premier. Pour le forcer à utiliser un répertoire d'installation différent, /usr/local par exemple, n':
gem install nokogiri -- --with-xml2-lib=/usr/local/lib --with-xml2-include=/usr/local/include/libxml2 --with-xslt-lib=/usr/local/lib --with-xslt-include=/usr/local/include
ce post 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 le billet de blog).
comme note secondaire: après avoir installé nokogiri, j'ai réussi à installer gollum (installation qui a également échoué parce qu'il ne pouvait pas trouver iconv). Maintenant, je suis toujours face à des problèmes cependant, parce que lorsque je démarre gollum, python se bloque.
$ gem install iconv # works but it is missing an iconv.so file in ruby 2.0.0-p247
$ ls -1 2.0.0-p0/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/*/*/*.so
2.0.0-p0/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/ext/iconv/iconv.so*
2.0.0-p0/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/lib/iconv/iconv.so*
$ ls -1 2.0.0-p247/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/*/*/*.so
2.0.0-p247/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/ext/iconv/iconv.so*
NOTE The MISSING/lib/iconv / iconv.ainsi, le fichier 2.0.0-p247 qui est présent dans l'installation de 2.0.0-p0 gems.
$ rbenv version
2.0.0-p247 (set by /home/XXX/tmp/.ruby-version)
$ rbenv which gem
/home/XXX/.rbenv/versions/2.0.0-p247/bin/gem
$ gem --version
1.8.25
$ rbenv which pry
/home/XXX/.rbenv/versions/2.0.0-p247/bin/pry
$ pry
[1] pry(main)> require 'iconv'
LoadError: cannot load such file -- iconv/iconv.so
from /home/XXX/.rbenv/versions/2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require'
Copiez le fichier sur
$ pushd ~/.rbenv/versions/
$ cp 2.0.0-p247/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/ext/iconv/iconv.so 2.0.0-p247/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/lib/iconv/
MAINTENANT ÇA MARCHE!
$ pry
[1] pry(main)> require 'iconv'
=> true
j'ai dû installer gcc avant d'exécuter ./configure --prefix=/usr/local/Cellar/libiconv/1.13.1
j'ai suivi les instructions de la page d'installation nokogiri et j'ai aussi installé des outils xcode. Mais il n'a toujours pas de travail pour moi.
puis j'ai vu que la commande brew install libxml2 libxslt
produit ce qui suit (entre autres choses):
To allow the nokogiri gem to link against this libxslt run:
gem install nokogiri -- --with-xslt-dir=/usr/local/opt/libxslt
donc, j'ai lancé ceci et nokogiri a été installé avec succès.