Sudo gem install nokogiri
Building native extensions. This could take a while...
ERROR: Error installing nokogiri:
ERROR: Failed to build gem native extension.
/Users/sajeev86/.rvm/rubies/Ruby-1.8.7-p352/bin/Ruby extconf.rb
checking for libxml/parser.h... no
-----
libxml2 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.
Je ne parviens pas à installer Nokogiri. Cela me fait payer depuis un certain temps maintenant. J'ai également installé les dépendances via MacPorts et Homebrew.
J'ai l'impression que les bons répertoires ne sont pas pointés l'un vers l'autre? Mais pas la moindre idée de comment réparer.
Absolumentnonedes autres réponses données ici ont fonctionné pour moi.
Sur la dernière version de Mavericks, la seule méthode qui a réussi pour moi était la suivante:
$ brew install libxml2 libxslt libiconv
$ Sudo gem install nokogiri -v '1.6.5' -- --use-system-libraries --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib
Le même problème m'est arrivé sur Lion. A pris des heures de lecture de messages, d'essais de homebrew, de macports, etc. Quand j'ai trouvé ce post et lu le contenu de .rvm/gems/Ruby-1.8.7-p358/gems/nokogiri-1.4.4/ext/nokogiri/mkmf.log, j'ai vu:
find_header: checking for libxml/parser.h... -------------------- no
"/usr/bin/gcc-4.2 -E -I. -I/Users/me/.rvm/rubies/Ruby-1.8.7-p358/lib/Ruby/1.8/i686-darwin10.8.0 -I. -I-I-I/opt/local/include -I-I-I/usr/local/include -I-I-I/Users/me/.rvm/rubies/Ruby-1.8.7-p358/include -I-I-I/usr/include -I-I-I/usr/include/libxml2 -I/opt/local/include/libxml2 -I/usr/local/include/libxml2 -I/Users/me/.rvm/rubies/Ruby-1.8.7-p358/include/libxml2 -I-I/opt/local/include -I-I/usr/local/include -I-I/Users/me/.rvm/rubies/Ruby-1.8.7-p358/include -I-I/usr/include -I-I/usr/include/libxml2 -I/opt/local/include -I/usr/local/include -I/Users/me/.rvm/rubies/Ruby-1.8.7-p358/include -I/usr/include -I/usr/include/libxml2 -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -g -O2 -fno-common -pipe -fno-common -g -DXP_UNIX -O3 -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline conftest.c -o conftest.i"
checked program was:
/* begin */
1: #include <libxml/parser.h>
/* end */
Cependant, gcc-4.2 n'existait pas:
$ ls /usr/bin/gcc*
/usr/bin/gcc
Par conséquent, j'ai pu résoudre le problème et obtenir l'installation de nokogiri en faisant de gcc-4.2 un lien symbolique vers gcc.
Sudo ln -s gcc gcc-4.2
J'ai rencontré le même problème pour Mavrick et la solution a été la
xcode-select --install
Cependant, cela ne fonctionnait pas car la page de téléchargement d’Apple n’avait pas ce programme d’installation publiquement disponible .. Donc, si vous voulez avoir les outils de ligne de commande pour Mavricks, vous devez avoir un compte payant, alors vous pourrez l’installer. Une fois installé, vous ne rencontrerez plus ce problème de Nokogiri.
Vérification de l'URL donnée dans le message d'erreur (http://nokogiri.org/tutorials/installing_nokogiri.html) Je pense que la question est quelle version de Homebrew utilisez-vous?
brew -v
Je mettrais à jour à 0.8+
brew update
brew upgrade
et essayez à nouveau l'installation:
brew install libxml2 libxslt
brew link libxml2 libxslt
gem install nokogiri
brew install libxml2 libxslt
gem install nokogiri -v '1.6.5' -- --use-system-libraries
Quant à moi, ça aide:
brew install libxml2 libxslt
si l'autorisation est refusée Sudo chown -R $USER /Library/Caches/Homebrew/
Sudo env ARCHFLAGS="-Arch x86_64"
export NOKOGIRI_USE_SYSTEM_LIBRARIES=1
NOKOGIRI_USE_SYSTEM_LIBRARIES=1 gem install nokogiri
Sur Yosemite j'ai utilisé:
brew install libxml2 libxslt
Sudo gem install nokogiri -v '1.6.5' -- --use-system-libraries --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib
Très proche de certaines des commandes ci-dessus mais sans libconv
En retard pour la fête, mais au cas où quelqu'un aurait toujours ce problème lors de l'utilisation de MacPorts:
Ajoutez le répertoire/include à votre PATH dans votre fichier .profile afin que nokogiri sache où le trouver.
par exemple.
MacPorts écrit dans votre fichier .profile et ajoute la ligne suivante par défaut:
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
Commencez par ajouter le chemin/include comme suit:
export PATH=/opt/local/bin:/opt/local/sbin:/opt/local/include/:$PATH
Ensuite, lancez ceci depuis la même fenêtre de terminal:
source ~/.profile
(ceci demande à votre terminal de revérifier le fichier .profile pour tout changement)
Enfin, essayez d’installer la gemme à partir de la même fenêtre de terminal.
Sudo gem install nokogiri
Pour mon système quelque peu obsolète rencontrant les problèmes ci-dessus, en particulier:
FENG-SHUI:demo Eric$ brew install libxml2
==> Downloading ftp://xmlsoft.org/libxml2/libxml2-2.9.0.tar.gz
######################################################################## 100.0%
==> Downloading patches
######################################################################## 100.0%
######################################################################## 100.0%
==> Patching patching file threads.c patching file xpath.c
==> ./configure --prefix=/usr/local/Cellar/libxml2/2.9.0 --without-python
==> make
==> make install
==> Caveats This formula is keg-only: so it was not symlinked into /usr/local.
Mac OS X already provides this software and installing another version in parallel can cause all kinds of trouble.
Generally there are no consequences of this for you. If you build your own software and it requires this formula, you'll need to add to your build variables:
LDFLAGS: -L/usr/local/opt/libxml2/lib
CPPFLAGS: -I/usr/local/opt/libxml2/include
Error: Failed to create: /usr/local/opt/libxml2
Things that depend on libxml2 will probably not build.
==> Summary /usr/local/Cellar/libxml2/2.9.0: 273 files, 11M, built in 2.0 minutes
FENG-SHUI:demo Eric$ brew install libxml2 libxslt
Error: libxml2-2.9.0 already installed
Error: /usr/local/opt/libxml2 not present or broken Please reinstall libxml2. Sorry :(
C'était la formule magique pour faire fonctionner joyeusement libxml2 et libxslt:
# latest version 2.9.0
brew install libxml2
# installing libxslt from source code
# get latest libxslt from ftp://xmlsoft.org/libxml2/libxslt-git-snapshot.tar.gz..
# then
./configure --prefix=/usr/local/Cellar/libxslt/1.1.28 --with-libxml-prefix=/usr/local/Cellar/libxml2/2.9.0
make
Sudo make install
# installing nokogiri with this new compiled libs
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
Merci à ce gars: https://Gist.github.com/fabioyamate/443160
J'espère que cela aide quelqu'un!
Je devais utiliser cette commande pour que cela fonctionne:
Sudo 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
(source: http://www.virtlab.cx/Ruby-fix-error-install-nokogiri-yosemite/ , merci beaucoup à l'auteur)
Cela fonctionnait pour moi sur OSX - identique à la réponse de @ remeberer, mais avec un chemin complet.
Sudo ln -s/usr/bin/gcc /usr/bin/gcc-4.2
Essayez d’ajouter --with-xml2-include=/opt/local/include/libxml2 --with-xml2-lib=/opt/local/lib
à votre commande, en supposant que c’est là que MacPorts libxml2.
J'ai eu du mal avec cela pendant des heures jusqu'à ce que je trouve cet article: http://www.markhneedham.com/blog/2010/07/08/installing-Ruby-1-9-2-with-rvm-on-snow- léopard
Exécuter la commande
fichier /usr/local/lib/libxml2.2.dylib
dans le terminal rendu
/usr/local/lib/libxml2.2.dylib: bibliothèque partagée liée dynamiquement Mach-O i386
ce qui signifie que mon libxml2.2 a été compilé pour un système 32 bits, donc je devais recompiler libxml2 pour un système d'exploitation 64 bits (Lion)
J'ai d'abord téléchargé LATEST_LIBXML2 à partir de ftp://xmlsoft.org/libxml2 et j'ai exécuté les commandes suivantes:
tar xzvf LATEST_LIBXML2
cd libxml2-2.8.0
./configure --with-python =/Système/Bibliothèque/Frameworks/Python.framework/Versions/2.3 /
make
Ensuite, j'ai téléchargé LATEST_LIBXSLT à partir du même site et exécuté ces commandes:
tar xzvf LATEST_LIBXSLT
cd libxslt-1.1.26
./configurer
make
Sudo fait installer
Fonctionnement
fichier /usr/local/lib/libxml2.2.dylib
encore retourné
/usr/local/lib/libxml2.2.dylib: bibliothèque partagée liée dynamiquement Mach-O x86_64
Et je pourrais enfin installer nokogiri!
Pour moi, j'ai simplement fait ce qui suit
xcode-select --install
gem install nokogiri
Pour un dépannage plus approfondi, consultez Installation de Nokogiri
Si vous installez une version plus ancienne de Nokogiri, c’est-à-dire une version antérieure à 1.6, cela peut aider:
Dans le Guide d'installation Nokogiri , ils mentionnent:
Parce que Nokogiri doit être compilé et lié dynamiquement à à la fois libxml2 et libxslt, il a acquis la réputation d'être compliqué à installer.
À partir de Nokogiri 1.6, le code source libxml2 et libxslt est fourni avec Nokogiri, et compilé au moment de l’installation de Gem. Ce document devrait fonctionner pour toutes les versions 1.6.4 et ultérieures.
(Si vous avez besoin d'assistance pour installer des versions antérieures de Nokogiri, vous voudrez peut-être jeter un coup d'œil à l'historique de git pour ce document.)
En effet, il est difficile à installer, mais il y a un moyen. Je suis allé fouiller dans l'historique du fichier readme, et j'ai choisi celui-ci, avec le message de validation bien écrit:
À partir de ce message et des autres réponses ici, j'ai compris qu'il me fallait être très spécifique sur les répertoires lib, dir et include de libxml2 lors de l'installation de Nokogiri. Ce qui suit a fonctionné pour moi, mais veuillez mettre à jour pour correspondre à votre version du logiciel libxml2 (le mien était 2.9.2
et j'installais Nokogiri 1.5.0
):
NOKOGIRI_USE_SYSTEM_LIBRARIES=1 gem install nokogiri -v '1.5.0' --
--use-system-libraries
--with-xml2-lib=/usr/local/Cellar/libxml2/2.9.2/lib
--with-xml2-config="$(brew --prefix libxml2)/bin/xml2-config"
--with-xslt-config="$(brew --prefix libxslt)/bin/xslt-config"
--with-xml2-dir=/usr/local/Cellar/libxml2/2.9.2/
--with-xml2-include=/usr/local/Cellar/libxml2/2.9.2/include/libxml2
un problème d’installation similaire sur Mountain Lion, sauf que la commande make recherchait gcc-4.2 dans/usr/local/opt/Apple-gcc42/bin
cela a résolu le problème pour moi; inutile d’installer libxml2 ou libxslt ou d’ajouter une option --with:
mkdir -p /usr/local/opt/Apple-gcc42/bin
ln -s /usr/bin/gcc /usr/local/opt/Apple-gcc42/bin/gcc-4.2