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?

136
demandé sur the Tin Man 2011-04-03 13:54:50

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
217
répondu Cory 2014-08-24 16:19:22

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
72
répondu Filip Kis 2017-05-23 12:34:53

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
36
répondu Micah Winkelspecht 2014-08-29 04:33:37

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.

18
répondu Micah Winkelspecht 2011-11-30 08:26:57

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.

14
répondu nbering 2014-11-28 04:22:16

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
6
répondu Kevin Ng 2014-08-22 07:34:32

j'ai résolu ce problème sur Yosemite tournant Ruby 2.1.4 par

  1. assurez-vous d'avoir le xCode 6.1 installé, puis
  2. xcode-select --install , puis
  3. 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)
  4. 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.

5
répondu Dave Sag 2014-10-29 02:17:44

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!

4
répondu Kamil Sarna 2013-01-08 14:47:13

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,

3
répondu Stéphane Akkaoui 2011-04-21 12:48:58

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

3
répondu SupaIrish 2012-04-13 07:45:20

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.

2
répondu scotchi 2011-04-21 10:04:11

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

2
répondu Mick West 2011-06-13 21:51:48
$ 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

2
répondu RacsO 2011-12-19 02:45:47

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!

2
répondu Mike 2012-08-04 14:07:04

, 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é

2
répondu Sam Rosen 2014-08-14 16:51:20

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
2
répondu Sam Figueroa 2014-11-04 10:14:47

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.

1
répondu Ilake Chang 2013-04-09 12:03:19

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
1
répondu lamont 2017-05-23 12:10:45

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

1
répondu Chen Kinnrot 2016-01-24 07:11:08

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.

0
répondu aaron blythe 2014-08-06 05:32:28

selon la documentation, à partir de OSX 10.9 et Homebrew 9.5+, vous manquez probablement les outils de développement.

installation Nokogiri

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.

0
répondu rexmadden 2014-10-15 14:36:38

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
0
répondu Lalu 2015-12-28 17:37:25

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:

gem install nokogiri -v '1.5.11" a échoué en raison de faire: /usr/local/bin/gmkdir: Aucun fichier ou répertoire de

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
0
répondu skensell 2017-05-23 12:02:48

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
-1
répondu Brian Jensen 2011-08-22 21:00:23

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
-1
répondu TsenYing 2012-07-19 15:50:29

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.

-1
répondu gaston 2013-05-10 10:20:13
$ 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
-1
répondu Darren Weber 2013-09-19 03:47:00

j'ai dû installer gcc avant d'exécuter ./configure --prefix=/usr/local/Cellar/libiconv/1.13.1

-1
répondu Cody Barr 2014-05-30 10:29:44

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.

-1
répondu faviomob 2014-07-15 19:40:08

ça marche pour moi:

gem install nokogiri -- --use-system-libraries

si vous utilisez Bundler, dites-lui d'utiliser l'option:

bundle config build.nokogiri --use-system-libraries
bundle install

ref

-1
répondu Muntasim 2017-05-23 12:34:53