J'ai toujours contourné les problèmes d'installation de Nokogiri en suivant la documentation du didacticiel « Installer Nokogiri ».
Mais cette fois, même après avoir installé toutes les dépendances, Nokogiri n'a pas été installé. J'obtiens l'erreur suivante:
libxml2 is missing. please visit <http://nokogiri.org/tutorials/installing_nokogiri.html>
J'ai essayé de l'installer en spécifiant les répertoires libxml2 et libxslt:
sudo gem install nokogiri -- --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib --with-xslt-dir=/usr/
mais il a renvoyé la même erreur.
J'ai suivi tous les autres articles liés à Stack Overflow et aucun n'a aidé. Quelqu'un a-t-il une solution?
ruby-on-rails
ruby
rubygems
Rohit A.
la source
la source
Réponses:
Tout d'abord, installez les dépendances:
Si vous recevez toujours l'erreur, il vous manque peut-être une chaîne d'outils du compilateur:
Vous obtiendrez l'erreur "libxml2 est manquante" s'il vous manque une chaîne d'outils de construction (au moins j'ai rencontré ce problème sur Debian Lenny).
Le test de construction de Nokogiri compile un fichier d'en-tête libxml2 pour vérifier qu'il est présent, cependant, il ne fait pas la différence entre "libxml2 est manquant" et "un compilateur pour tester libxml2 est manquant".
la source
Vous devrez peut-être installer ces deux packages
la source
Sous Mac OS X (Mavericks), installer les bibliothèques avec
brew
et paramétrerNOKOGIRI_USE_SYSTEM_LIBRARIES=1
avant d'installer le gem a fait l'affaire pour moi.En résumé:
S'il a déjà été installé, désinstallez le gem:
Utilisez Homebrew pour installer
libxml2
,libxslt
etlibiconv
:Installez le gem en spécifiant les chemins vers les bibliothèques à lier:
la source
$ NOKOGIRI_USE_SYSTEM_LIBRARIES=1 gem install nokogiri
fait l'affairebrew install libxml2 libxslt homebrew/dupes/libiconv
pour que cela fonctionne--with-xml2-include="/usr/local/opt/libxml2/include/libxml2"
pour que lagem install nokogiri
commande fonctionne. Sinon, cela montreralibxml2 version 2.6.21 or later is required!
(ma version libxml2 est 2.9.2)J'ai juste eu le même problème sur Fedora 13. Après une recherche frustrante et infructueuse à faire
travailler pour moi, j'ai pu l'installer et contourner l'erreur libxml2 via
yum
.Installez simplement le gem via
yum
au lieu de lagem
commande:Cela m'a aidé à trouver la bonne réponse pour Fedora et, comme j'utilise RVM pour la gestion des paquets Ruby,
va intégrer toutes les gemmes et dépendances Ruby dans le système, pas dans mon environnement RVM, et selon mon expérience, cela conduit à une expérience très frustrante et humiliante.
Donc, en prenant votre trouvaille de la gemme Nokogiri yum, vous pouvez utiliser:
et obtenez une liste des dépendances pour rubygem-Nokogiri qui m'a montré les bibliothèques manquantes. Après cela, j'ai couru:
Maintenant, Nokogiri compile dans les installations Fedora et Nokogiri. D'oh !, nous avons besoin des en-têtes pour compiler Nokogiri à partir des bibliothèques de développement.
la source
Sous Mac OS X (Mavericks), si aucune de ces solutions ne fonctionne, essayez:
ou
en fonction de l'architecture de votre système.
la source
Vous avez généralement besoin de fichiers de développement pour créer des gemmes. Essayer:
(Je viens de voir qu'Eric a suggéré la même chose dans un commentaire.)
la source
J'ai pu l'installer avec Chocolatey , Windows 8.1 x64 et DevKit x64.
Vous devrez vérifier que le numéro de version dans les chemins est correct.
Vous devrez peut-être ajouter le référentiel NuGet de Microsoft:
la source
...\x64\Release\dynamic\cdecl
.chocolatey sources add -name NuGet -source "https://go.microsoft.com/fwlink/?LinkID=230477"
Ce sera:
sur les serveurs RHEL.
la source
Sous macOS, aucun des éléments ci-dessus / ci-dessous n'avait vraiment fonctionné pour moi jusqu'à ce que j'aie explicitement fourni le chemin d'accès à XCode libxml2
--with-xml2-include
.la source
J'ai pu installer Nokogiri 1.6.5 sur Fedora 20 en faisant:
Puis en cours d'exécution:
la source
Pour toute autre personne rencontrant ce problème, je l'ai résolu en exécutant cette commande dans le répertoire du projet
gem install nokogiri -- --use-system-libraries
Mise à jour: je suis tombé dessus à nouveau et j'ai essayé de mettre à jour le bijou qui a fonctionné pour moi ...
gem update nokogiri
la source
Avez-vous essayé d'installer libxml2? Pas de rubygems, mais via le processus d'installation standard de votre système d'exploitation. Sur Ubuntu / Debian par exemple:
Sur toute version récente d'OS X, il devrait déjà être installé.
la source
Pour les utilisateurs d'OSX, si vous avez déjà réussi à installer Nokogiri auparavant, mais que vous rencontrez des erreurs lors de son installation, par exemple, en utilisant une nouvelle version de Ruby que vous avez ajoutée et cette erreur qui comprend un message comme:
Cela pourrait indiquer qu'une mise à niveau XCode s'est produite via l'App Store, manuellement ou automatiquement, et que vous ne l'avez pas ouverte depuis ce temps.
Si tel est le cas, vous devriez pouvoir ouvrir XCode, accepter la nouvelle licence, puis installer Nokogiri avec succès.
la source
Sur Mac OS X Yosemite, mon erreur a été que j'ai essayé d'utiliser
sudo gem install
quand c'est une règle de base de ne pas utiliser les privilèges de superutilisateur lors de l'installation de gemmes.Dans mon cas, il a essayé de modifier l'installation système de Ruby, et ce n'est pas une bonne idée. J'ai installé rbenv, installé Ruby 2.2.2 à travers lui et l'ai défini comme
global
, qui est un terme de la documentation de rbenv. Après cela, Nokogiri pourrait s'installer avec un simpleAucun hacks ou solutions de contournement n'étaient nécessaires, juste un environnement correctement défini; Nokogiri fait parfaitement le reste.
la source
sudo
est OK SI vous comprenez comment cela fonctionne, où cela va prendre effet, pourquoi les fichiers installés ou mis à jour doivent être installés et comment annuler l'action en cas d'échec. Sinon, utiliser un bac à sable comme rbenv ou RVM est VRAIMENT une bonne idée.A pu installer vagrant-awe en suivant le post ci-dessus mais en utilisant la commande comme suit:
la source
Pour Windows x64:
Pour plus d'informations, consultez ce fil: https://github.com/sparklemotion/nokogiri/issues/864
la source
J'ai pu installer Nokogiri en exécutant les packages suivants:
la source
=== TLDR ===
Comme l' indiquent les instructions , construisez Ruby avec le dernier compilateur clang, ou au moins la même version que Rubygems utilisera pour compiler les extensions natives de Nokogiri libxml et libxsl.
Si vous utilisez RVM, la construction à partir de la source avec le
--with-ggc=clang
drapeau a été ce qui l'a fait pour moi:Remplacez
2.2
par la version de votre choix.--with-gcc=clang
s'assure que RVM construit à partir de la source et utilise clang pour le faire; sinon RVM peut un Ruby binaire pré-construit, ce qui m'a fait trébucher.Ensuite, installez Nokogiri normalement en utilisant Bundler ou Rubygems.
=== EN PROFONDEUR ===
J'ai eu du mal avec ça pendant un moment.
gem install nokogiri
m'a donné:En creusant,
mkmf.log
j'ai vu:Nokogiri fournit ses propres libxml et libxsl (à partir de 1.6.4). La signature définie dans la copie locale de Nokogiri de parser.h (trouvée sous le répertoire d'installation de gem) est:
Je ne savais donc pas comment l'appel de méthode dans l'utilisation du fichier conftest.c hermétiquement scellé ne pouvait pas correspondre au fichier d'en-tête pour parser.h.
Quand j'ai réalisé que j'avais probablement installé un Ruby binaire, j'ai supprimé et réinstallé en utilisant
--with-gcc=clang
(pour forcer la compilation et utiliser clang) et le problème a été résolu:Je ne sais pas exactement pourquoi cela fonctionne car l'en-tête système libxml
/usr/include/libxml2/libxml/parser.h
a la même signature que la copie locale de Nokogiri.C'est bizarre, mais ça a marché. Assurez-vous simplement de compiler un Ruby avec clang.
la source
Changez votre version avec.
la source