Erreur d'installation de Nokogiri sur OSX 10.9 Maverick?

109

J'ai mis à niveau mon OSX (Lion) vers Mavericks et je ne peux pas installer Nokogiri pour mes projets.

J'installe déjà XCode 5.0.1, les outils de ligne de commande (en utilisant xcode-select --install), et j'ai déjà installé libxml2 à partir de Homebrew et j'ai toujours des problèmes.

L'erreur est:

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/bin/ruby extconf.rb
checking for libxml/parser.h... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
    --with-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/bin/ruby
    --with-zlib-dir
    --without-zlib-dir
    --with-zlib-include
    --without-zlib-include=${zlib-dir}/include
    --with-zlib-lib
    --without-zlib-lib=${zlib-dir}/lib
    --with-iconv-dir
    --without-iconv-dir
    --with-iconv-include
    --without-iconv-include=${iconv-dir}/include
    --with-iconv-lib
    --without-iconv-lib=${iconv-dir}/lib
    --with-xml2-dir
    --without-xml2-dir
    --with-xml2-include
    --without-xml2-include=${xml2-dir}/include
    --with-xml2-lib
    --without-xml2-lib=${xml2-dir}/lib
    --with-xslt-dir
    --without-xslt-dir
    --with-xslt-include
    --without-xslt-include=${xslt-dir}/include
    --with-xslt-lib
    --without-xslt-lib=${xslt-dir}/lib
    --with-libxslt-config
    --without-libxslt-config
    --with-pkg-config
    --without-pkg-config
    --with-libxml-2.0-config
    --without-libxml-2.0-config
    --with-libiconv-config
    --without-libiconv-config
/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:368:in `try_do': The complier failed to generate an executable file. (RuntimeError)
You have to install development tools first.
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:452:in `try_cpp'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:853:in `block in find_header'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:693:in `block in checking_for'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:280:in `block (2 levels) in postpone'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:254:in `open'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:280:in `block in postpone'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:254:in `open'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:276:in `postpone'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:692:in `checking_for'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:852:in `find_header'
    from extconf.rb:116:in `<main>'


Gem files will remain installed in /Users/ericcamalionte/Locaweb/code/dns-panel/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.5.9 for inspection.
Results logged to /Users/ericcamalionte/Locaweb/code/dns-panel/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.5.9/ext/nokogiri/gem_make.out
An error occured while installing nokogiri (1.5.9), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.5.9'` succeeds before bundling.

J'ai installé libxml2, libxslt et libiconv de Homebrew, et défini les paramètres pour installer Nokogiri, mais ne fonctionne pas aussi.

Je ne trouve pas ce qui ne va pas dans mon environnement, pouvez-vous m'aider?

squiter
la source
duplication possible de l' erreur d'installation de nokogiri 1.6.0 sur mac (libxml2)
davidcondrey
2
Essayez d'ouvrir xcode et acceptez le CLUF / la licence.
moander

Réponses:

245

Vous pouvez également installer Nokogiri sur Mac OS X 10.9 Mavericks avec une installation XCode complète en utilisant:

gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2

Mettre à jour

Pour ceux qui utilisent Yosemite, la commande suivante fonctionnera:

gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/libxml2 --use-system-libraries

ou, il peut en fait être dans votre MacOSX10.11.sdkdossier (le mien était au 18-Sep-2015) de toute façon, donc même si vous n'êtes pas encore complètement à El Capitan, j'ai récemment mis à jour XCode et vous devrez peut-être utiliser le SDK El Capitan chemin, qui suit ensuite:

Mettre à jour

Pour ceux qui utilisent El Capitan, la commande suivante fonctionnera:

gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/libxml2 --use-system-libraries

Mettre à jour

Pour ceux qui utilisent Sierra, la commande suivante fonctionnera:

gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/libxml2 --use-system-libraries
thomas_witt
la source
4
Pas pour moi: "libxml2 est manquant. Veuillez visiter nokogiri.org/tutorials/installing_nokogiri.html pour obtenir de l'aide sur l'installation des dépendances." Toujours la même erreur.
Pop-A-Stash
1
J'ai dû ajouter --use-system-bibliothèques. Ensuite, il a travaillé sur une toute nouvelle installation de non-conformistes avec Xcode 5.1.1 et Brew.
jmg
11
J'ai dû ajouter le --use-system-librariespour que cela fonctionne:gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2 --use-system-libraries
Maverick
1
C'est le seul qui fonctionnerait pour moi, sur 10.10.3: sudo gem install nokogiri - --with-iconv-lib = / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs /MacOSX10.10.sdk/usr/lib --with-iconv-include = / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs / MacOSX10.10.sdk / usr / include - with-xml2-include = / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs / MacOSX10.10.sdk / usr / include / libxml2 --use-system-bibliothèques
Erik Villegas
10
Vous voudrez peut-être mettre à jour votre réponse avec la commande plus générique qui devrait fonctionner sur toutes les versions d'OS X et les chemins d'installation de Xcode:gem install nokogiri -- --with-xml2-include=`xcrun --show-sdk-path`/usr/include/libxml2 --use-system-libraries
Philipp
30

Après avoir parcouru les GIF animés ici , tout ce que j'avais à faire était simplement xcode-select --installet cela gem install nokogirifonctionnait bien.

Micah Alcorn
la source
Merci, travaille pour moi! PS: very good jasdeep.ca/2013/10/installing-nokogiri-fails-os-x-mavericks
Tizón
Doh, oui, j'avais négligé d'installer les outils de ligne de commande XCode sur mon installation propre de Mavericks.
Superluminary
20

J'ai trouvé ce journal et j'ai vu que gcc-4.2 était introuvable:

package configuration for libxslt
cflags: -I/usr/local/Cellar/libxslt/1.1.28/include -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2
ldflags: -L/usr/local/Cellar/libxslt/1.1.28/lib -L/usr/local/Cellar/libxml2/2.9.1/lib
libs: -lxslt -lxml2 -lz -lpthread -liconv -lm -lxml2

package configuration for libxml-2.0
cflags: -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2
ldflags: -L/usr/local/Cellar/libxml2/2.9.1/lib
libs: -lxml2

package configuration for libiconv is not found
"/usr/bin/gcc-4.2 -o conftest -I/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/include/ruby-1.9.1/x86_64-darwin11.4.0 -I/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/include/ruby-1.9.1/ruby/backward -I/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/include/ruby-1.9.1 -I. -I/usr/local/Cellar/libxslt/1.1.28/include -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2 -I/usr/local/Cellar/libiconv/1.14/include -I/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0/include -I/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26/include -I/Users/ericcamalionte/.rvm/usr/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE    -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long  -fno-common -pipe  -g -DXP_UNIX -O3 -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline -DNOKOGIRI_USE_PACKAGED_LIBRARIES -DNOKOGIRI_LIBXML2_PATH='"/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0"' -DNOKOGIRI_LIBXSLT_PATH='"/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26"' -I/usr/local/Cellar/libxslt/1.1.28/include -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2  -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2  conftest.c  -L. -L/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib -L/usr/local/Cellar/libxslt/1.1.28/lib -L/usr/local/Cellar/libxml2/2.9.1/lib -L/usr/local/Cellar/libiconv/1.14/lib -L/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0/lib -L/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26/lib -L/Users/ericcamalionte/.rvm/usr/lib -L.  -Wl,-rpath,/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0/lib -Wl,-rpath,/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26/lib -L/usr/local/Cellar/libxslt/1.1.28/lib -L/usr/local/Cellar/libxml2/2.9.1/lib -L/usr/local/Cellar/libxml2/2.9.1/lib     -lxslt -lxml2 -lz -lpthread -liconv -lm -lxml2  -lxml2  -lruby.1.9.1-static  -lpthread -ldl -lobjc  "
sh: /usr/bin/gcc-4.2: No such file or directory
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main() {return 0;}
/* end */

Pour résoudre ce problème, j'ai installé apple-gcc42 en utilisant homebrew brew install apple-gcc42et j'ai créé un lien symbolique vers mon / usr / bin:

sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2 /usr/bin/gcc-4.2

squiter
la source
cela n'a pas résolu le problème pour moi, j'ai toujours le même message d'erreur :(
David Portabella
1
J'ai complètement désinstallé rvm et ruby ​​(de brew), réinstallé et cela a fonctionné.
David Portabella
3
Donc, je viens de courir brew install apple-gcc42... et ça marche. Cette commande ne fonctionne pas pour vous?
squiter
4
J'ai couru xcode-select --installavant l'installation de l'infusion et tout fonctionne maintenant.
Quickredfox
1
@LucyBain Je ne me souviens vraiment pas .... mais je pense que ce fichier journal était dans le même répertoire que gem_meake.out ...
squiter
15

Si vous exécutez Xcode 5.1, les outils de ligne de commande ne fonctionnent pas pour nokogiri 1.6.1. Vous devrez télécharger les outils de fin octobre 2013 auprès d' Apple . Une fois que vous faites cette course

sudo xcode-select -s /Library/Developer/CommandLineTools/

pour configurer votre machine afin d'utiliser les outils de ligne de commande Xcode 5.0.X, puis exécutez

gem install nokogiri

Si vous souhaitez réinitialiser vos outils de ligne de commande à la version Xcode.app après, exécutez

sudo xcode-select -r

Ou, une autre chose que vous pouvez faire est d'ajouter l'indicateur pour ignorer les arguments de ligne de commande inconnus. Ensuite, l'installation ressemble à ceci:

sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install nokogiri
Alpin
la source
12

C'est ce qui a fonctionné pour moi sur OSX Mavericks:

sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install nokogiri -v '1.6.1' --verbose --no-ri --no-rdoc
ReneGAED
la source
étonnamment, c'est la seule chose dans toute cette bande de roulement qui m'a aidé aussi. Merci!
KonstantinK
Le problème avec ceci est que l'utilisation sudoavec RVM ou rbenv causera des problèmes car root ne sait pas où vivent les Rubies en bac à sable. Ceci est couvert dans la page d'installation RVM . L'OP utilise RVM, et l'utilisation sudoentraînerait l'installation de Nokogiri dans Ruby d'Apple, pas dans l'utilisateur. Donc, ne le faites pas sauf si vous êtes SÛR de vouloir installer dans Ruby d'Apple si vous êtes sur Mac OS, ou dans le système Ruby si vous êtes sur un autre * nix.
the Tin Man
10

Je suis sur OSX Mavericks et mon problème s'est avéré être une mauvaise installation de Ruby.

Alors, j'ai réinstallé ruby ​​avec rvm:

rvm remove ruby 2.0.0p451
rvm remove ruby-2.0.0-p451 && rvm install ruby-2.0.0-p451

J'ai pu alors

gem install nokogiri --no-ri --no-rdoc

Problème résolu.

sulfureux
la source
Cool. Maintenant que vous utilisez rvm sur des non-conformistes, essayez d'ouvrir vim. Erreur SEGV? Charmant.
Tim
Je n'ai pas pu supprimer le jeu de gemmes car les dossiers n'étaient pas vides, mais la réinstallation du jeu de gemmes (même s'il y avait des erreurs) l'a fait! C'est la seule chose qui a fonctionné pour moi!
Onikoroshi
9

J'aime m'en tenir aux éléments fournis par le système. Cela a fonctionné pour moi:

gem install nokogiri -- --with-iconv-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/ --with-iconv-lib=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/lib/
Roi fantôme
la source
après l'avoir recherché sur Google pendant des heures, c'était la seule solution qui fonctionnait pour moi, merci! : D
Rogerio Chaves
5

J'ai rencontré ce problème immédiatement après l'installation de la mise à jour Mavericks 10.9.5 et de la mise à jour des outils de développement 10.9 d'Apple. J'ai couru xcode-select --install, mais cela n'a pas résolu le problème. Ensuite, j'ai ouvert XCode, accepté l'eula et quitté XCode. Cela a résolu le problème.

philosodad
la source
3

J'ai eu ce problème aujourd'hui, sur Maverick, voici comment j'ai fini par résoudre le problème:

brew update
brew install libiconv
brew link libiconv

Assurez-vous que vous connaissez la version de libiconv dans Cellar mine ci-dessous était 1.14, puis installez comme ci-dessous:

gem install nokogiri -- --with-iconv-dir=/usr/local/Cellar/libiconv/1.14

Si vous avez besoin d'une version particulière de nokogiri, par exemple -v '1.6.2.1', installez-la en tant que:

gem install nokogiri -v '1.6.2.1' -- --with-iconv-dir=/usr/local/Cellar/libiconv/1.14

Nokogiri a été installé avec succès!

Kingsley Ijomah
la source
J'ai aussi travaillé pour moi sur Yosemite. Aucune des réponses ci-dessus ne l'a fait.
MattL
3

C'est le même que celui de @ thomas_witt mais fonctionne sur Mac OS X Sierra:

gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/libxml2 --use-system-libraries
Edwardmp
la source
2

Pour que l'installation fonctionne, j'ai dû modifier les chemins de fichiers dans la gem installcommande pour qu'ils correspondent à ceux de mon système. J'ai différentes versions de libxml2 et libiconv et une structure de fichiers légèrement différente. La commande, avec mes modifications, est:

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.13.1/include 
                        --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib
Darkmoves
la source
Je devais être très méticuleux avec les chemins de fichiers. Il m'a fallu plusieurs essais pour construire correctement les commandes.
darkmoves
Voici un lien vers une autre solution au problème d'une version de libxml incorrecte.
darkmoves
2

Pour les personnes utilisant MacPorts , assurez-vous que vous avez installé libxml2via MacPorts. Tapez ensuite:

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

Cela devrait faire l'affaire, a fonctionné pour moi sans utiliser de chemins complets.

atmosx
la source
2

À utiliser brew install libxml2 libxsltsi vous utilisez Homebrew.

ryancheung
la source
2

Voici une autre référence:

system: OS X Yosemite 10.10
rvm: 1.26.10
brew: 0.9.5
ruby: ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin14]

J'ai eu une erreur lors de l'installation de nokogiri

erreur comme celle-ci:

.rvm/rubies/ruby-2.2.0-p0/lib/ruby/1.9.1/mkmf.rb:368:in `try_do': The complier failed to generate an executable file. (RuntimeError)

Vous devez d'abord installer les outils de développement.

alors probablement besoin:

$ xcode-select --install

ou si vous avez une erreur comme

checking for libxml/parser.h... no

Je corrige simplement le chemin de la bibliothèque par:

gem uninstall nokogiri libxml-ruby
brew update
brew uninstall libxml2
brew install libxml2 libxslt
gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.2/include/libxml2/libxml --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.2/lib --with-iconv-dir=/usr/local/Cellar/libiconv/1.14/ --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26/

pour bundle besoin de quelque chose comme:

bundle config build.nokogiri --with-xml2-include=/usr/local/Cellar/libxml2/2.9.2/include/libxml2/libxml --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.2/lib --with-iconv-dir=/usr/local/Cellar/libiconv/1.14/ --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26/
bundle install
Ken
la source
2

Cela fonctionne pour moi

system: OS X Yosemite 10.10
rvm: 1.26.10
ruby: ruby 2.2.1 

Exécutez simplement sous deux commandes

$ xcode-select --install

Il vous demandera de télécharger dire «oui» puis il vous demandera d'installer le composant xcode cliquez sur installer.

Maintenant, essayez d'installer le gem avec la commande ci-dessous

gem install nokogiri --no-ri --no-rdoc

Cela fonctionne pour moi avec l'environnement ci-dessus.

Rameshwar Vyevhare
la source
1

J'ai rencontré le même problème pour Mavrick, et la solution était:

xcode-select --install

Cependant, cela ne fonctionne pas car la page de téléchargement d'Apple pour l'outil de ligne de commande n'a pas ce programme d'installation disponible publiquement maintenant.

Donc, si vous voulez avoir les outils de ligne de commande pour Mavricks, vous devez avoir un compte payant . Alors vous seul pourrez l'installer. Une fois que vous l'avez installé, vous ne serez pas confronté à ce problème avec Nokogiri.

secret
la source
Je n'ai pas de compte payant et j'ai été installé les outils de ligne de commande. J'ai installé en utilisant un terminal, mais un de mes amis a installé en utilisant cette page de téléchargement, et il n'a pas non plus de compte payant.
squiter
Je suis d'accord avec toi. La même chose s'est produite avec moi jusqu'au 24 novembre 2013. Cependant, si vous allez sur cette page maintenant et essayez d'y accéder, cela vous donnera cette erreur. La chose étrange est que vous vous connectez avec vos informations d'identification, mais cela vous permettra de vous connecter en tant qu'invité. Voici le message que je reçois sur la page avec mon compte: Programme Apple Developer Big Avertissement Nous ne pouvons pas traiter votre demande. Veuillez retourner à la page précédente ou quitter votre navigateur et réessayer votre demande. Si vous avez besoin d'aide, veuillez contacter l'assistance aux développeurs Apple.
shinesecret
1

J'ai eu cette même erreur sur une nouvelle installation de Mavericks. Après avoir manqué de jugement, j'ai renommé mon ensemble d'applications Xcode en Xcode 5.0.1.app.

Apparemment, le script d'installation de Nokogiri ne cite pas ses chemins et donc l'espace dans le nom du fichier a causé toutes sortes de problèmes. Ce n'est que lorsque j'ai essayé brew install libxml2que l'erreur est devenue évidente.

Leçon apprise: les espaces dans les noms de fichiers sont mauvais.

Dave Teare
la source
1

Dans mon cas, je devais exécuter /usr/bin/gcc-4.2 après l'avoir lié symboliquement. Vous devez accepter le contrat de licence, sinon il se bloque.

Mike Cartmell
la source
1

Le message d'erreur donne un indice ici: The compiler failed to generate an executable file. (RuntimeError)

xcode-select --install # not sure if this is required  
brew install apple-gcc42  
gem install nokogiri  

Vous devrez peut-être également installer et lier ces éléments:

libxml2 libxslt
Rimian
la source
1
brew install libxml2 libxslt
gem install nokogiri -- \
    --with-xml2-include=/usr/local/Cellar/libxml2/*/include/libxml2 \
    --with-xml2-lib=/usr/local/Cellar/libxml2/*/lib \
    --with-xslt-dir=/usr/local/Cellar/libxslt/*
Slava V
la source
1

Pour moi, l'erreur était que gcc (4.2.1, installé à partir de Homebrew) se plaignait que:

-E, -S, -save-temps and -M options are not allowed with multiple -arch flags

J'ai résolu le problème en forçant uniquement x86_64:

ARCHFLAGS="-arch x86_64" gem install nokogiri 
Tor Arne
la source
1

Après la mise à niveau vers Maverick, j'ai eu un problème similaire. J'utilise RVM avec Ruby 1.9.2-p320, et j'ai essayé plusieurs solutions données ici, mais rien n'a résolu le problème.

Ensuite, je suis passé à Ruby 2.1.2 et j'ai bundle installinstallé Nokogiri immédiatement.

Paul Verschoor
la source
1

Si quelqu'un a ce problème sur el capitan, tout en utilisant bundler.

Assurez-vous que les outils de ligne de commande xcode sont installés et exécutez ceci:

bundle config build.nokogiri --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/libxml2 --use-system-libraries
Gibo
la source
1

J'étais confronté au même problème des deux dernières semaines en essayant d'exécuter une application de la version Rails 3.

Le problème est que votre rvm / rbenv n'utilise pas le compilateur C.

Utilisez cette commande pour rvm pour prendre un compilateur C compatible

CC=gcc rvm install-version

Donc, si vous utilisez Ruby 1.9.3, utilisez-le de cette façon

CC=gcc rvm install-1.9.3

Utilisez cette commande chaque fois que vous ne parvenez pas à regrouper l'installation ou quoi que ce soit. Cette chose fonctionne sur El Capitan, rails 3.2.16, ruby ​​1.9.3, mysql 5.7 J'espère que cela résoudra le problème.

J'étais confronté au même problème des deux dernières semaines en essayant d'exécuter une application de la version Rails 3.

Le problème est que votre rvm / rbenv n'utilise pas le compilateur C.

Utilisez cette commande pour rvm pour prendre un compilateur C compatible

CC=gcc rvm install-version

Donc, si vous utilisez Ruby 1.9.3, utilisez-le de cette façon

CC=gcc rvm install-1.9.3

Utilisez cette commande chaque fois que vous ne parvenez pas à regrouper l'installation ou quoi que ce soit.

Cette chose fonctionne sur El Capitan, rails 3.2.16, ruby ​​1.9.3, mysql 5.7 J'espère que cela résoudra le problème. Et aussi si vous avez déjà le Xcode et que vous n'obtenez pas les mêmes erreurs lors de l'installation d'un gem, essayez cette solution.


la source
1

J'ai ajouté mes résultats ici après avoir rencontré ce même problème peu de temps après une mise à niveau: http://jasdeep.ca/2013/10/installing-nokogiri-fails-os-x-mavericks/

Le correctif est simplement ces 2 commandes:

xcode-select --install
gem install nokogiri

J'espère que ça aide.

Jasdeep Singh
la source
5
S'il vous plaît poster le truc ici - les liens sont susceptibles d'être brisés (voir les directives)
Justin
Cela m'a aidé, même si je fais écho au sentiment de publier la réponse ici, plutôt que dans un lien :)
Richard
C'est ce qui est considéré comme une réponse de lien uniquement qui est déconseillée sur Stack Overflow. Au lieu de publier uniquement un lien vers votre propre site, résumez également les informations importantes dans votre réponse. De cette façon, si le lien pourrit, comme ils ont tendance à le faire, la réponse continuera à fournir une certaine valeur.
the Tin Man
0

J'ai eu ce problème aussi. L'exécution a brew doctormontré que j'avais une version inattendue de libiconv dans / user / local / lib.

Warning: Unbrewed dylibs were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

Unexpected dylibs:
    /usr/local/lib/libcharset.1.dylib
    /usr/local/lib/libiconv.2.dylib

Je les ai donc supprimés et j'ai reformé libxml:

rm  /usr/local/lib/libiconv*
andromeda:nokogiri-1.6.0 Jeff$ brew install libxml2 libxslt
...
==> Summary
🍺  /usr/local/Cellar/libxslt/1.1.28: 145 files, 3.3M, built in 36 seconds

Enfin, j'ai installé nokogiri:

Jeff$ gem install nokogiri
Building native extensions.  This could take a while...
Successfully installed nokogiri-1.6.0
1 gem installed
Jeff Paquette
la source
J'ai eu un problème similaire (un libiconv non lié). J'ai dissocié libiconv et réinstallé. brew installez libiconv, puis gem installez nokogirl.
Ben
0

Aucune de ces réponses n'a fonctionné pour mon cas particulier, et comme je suis un nouveau, j'ai pensé que ma solution pourrait peut-être aider quelqu'un d'autre.

J'utilise Yosemite et j'utilise Ruby 1.9.3p547. Il y avait une exposition de sécurité pour p547, donc j'essayais de mettre à jour vers Ruby 1.9.3p550 ou supérieur. J'ai utilisé RVM, puis j'ai essayé de migrer mes gemmes et beaucoup d'entre elles n'ont pas fonctionné. Ensuite, j'ai essayé de regrouper l'installation mais cela a échoué et j'ai pensé que c'était peut-être un conflit entre les différents chemins et dépendances, j'ai donc supprimé l'ancienne version de Ruby. Cela a tout cassé.

J'ai continué à recevoir un message disant que le compilateur C était manquant, même si j'avais téléchargé XCode et récemment mis à jour les outils CLI. J'ai trouvé un autre site Web qui m'a dit de télécharger un GCC tiers, ce que j'ai fait. ce qui a tout aggravé.

Maintenant, je reçois un message disant que je dois corriger mes profils et mes PATH ou il pourrait être plus facile de réinstaller OSX. Alors je l'ai fait.

Quoi qu'il en soit, une histoire plus longue simplement longue: la solution qui a finalement fonctionné pour moi était de me débarrasser de RVM et d'utiliser simplement brew pour télécharger la version Ruby que je voulais avant de courir bundle install. Installez la version correcte de Nokogiri FIRST.

brew install ruby193
sudo gem install nokogiri -v '1.6.0'
bundle install
Gabriel Pumple
la source
L'utilisation sudoentraînera l'installation de Nokogiri dans le seul Ruby connu par root, qui est très probablement Ruby installé par Apple à moins d' utiliser Homebrew. Parce que l'OP utilisait RVM, cela signifie que Nokogiri ne serait pas vu par un Ruby géré par RVM, et ne ferait qu'aggraver le problème. L'utilisation a sudopeut-être fonctionné dans ce cas, mais elle ne devrait pas être essayée avec un Ruby géré par RVM ou rbenv. RVM dit spécifiquement de ne pas le faire dans la documentation d'installation .
the Tin Man
0

pour Windows, vous pouvez également essayer l'installation locale:

  1. téléchargez la gemme appropriée en fonction de votre environnement.

  2. allez dans le répertoire où vous avez enregistré le fichier gem.

  3. gem install --local nokogiri-1.6.3.1-x86-mingw32.gem

si cela ne fonctionne pas, vous pouvez vérifier si zlib et mingw ou un compilateur c approprié sont installés.

Chevalier Dragon
la source
0

Chaque sacré truc ici ne l'a pas fait pour moi (je ne suis pas entré dans les réinstallation de brew, oy), mais cela l'a finalement fait (trouvé via un rapport de bogue sur un projet sans rapport):

gem install nokogiri -- --use-system-libraries=true --with-xml2-include=/usr/include/libxml2

Bonne chance. Yay pour #yakshaving!

Dan Ancona
la source
-3

Vérifiez la version de vos outils de ligne de commande. Configurez votre machine pour utiliser les outils de ligne de commande Xcode 5.0.X, puis exécutez:

gem install nokogiri
user3696190
la source
vous devez utiliser cette commande. terminal ouvert. et écrivez cette commande. export NOKOGIRI_USE_SYSTEM_LIBRARIES = true
Durul Dalkanat