74 votes

Comment installer Nokogiri sur Mac OS Sierra 10.12

Je rencontre des problèmes pour installer Nokogiri (1.6.8.1) sur Mac OS Sierra 10.12.

J'ai essayé d'utiliser brew install libxml2 libxslt et ensuite de référencer les répertoires d'installation en utilisant des options en ligne de commande mais cela n'a pas aidé.

0 votes

Si vous essayez d'installer Nokogiri > v1.6.8.1 après avoir installé Mac OS Sierra, j'ai trouvé que v1.7.1 aura des problèmes si c'est la première version installée avec cette version de Ruby. Installer v1.6.8.1 puis mettre à jour en utilisant gem update nokogiri à travers les versions intermédiaires jusqu'à v1.7.1 m'a permis de l'installer. C'est un hack mais ça a marché et une fois que je l'avais installé je n'avais pas envie d'approfondir davantage.

181voto

ju. Points 3497

Ouvrez Xcode et, dans le menu XCode -> Préférences mettez à jour vos Outils en ligne de commande (Xcode 8.0).

Ensuite, faites :

bundle config build.nokogiri --use-system-libraries=true --with-xml2-include="$(xcrun --show-sdk-path)"/usr/include/libxml2
bundle install

ou simplement :

gem install nokogiri -v 1.6.8.1 -- --use-system-libraries=true --with-xml2-include="$(xcrun --show-sdk-path)"/usr/include/libxml2

9 votes

La réponse de NDan est plus simple

0 votes

Merci, vraiment utile

0 votes

Les nouvelles versions de Mac OS exigent que Xcode soit mis à jour, ce qui invalide les outils en ligne de commande, donc ils doivent être réinstallés. Nokogiri est livré avec sa propre version de libxml2, ce qui est utile sur de nombreux systèmes, mais parfois le gem nécessite d'être informé de l'endroit où trouver les choses. Le gem fera en réalité ce qu'il faut une fois que Xcode est mis à jour.

126voto

NDan Points 1804

La solution la plus simple est d'exécuter:

xcode-select --install
gem install nokogiri

Mise à jour

Pour Mojave, j'utilise gem install nokogiri -v '1.6.6.2' -- --use-system-libraries

2 votes

Cela a fonctionné pour moi. Après avoir mis à jour vers OS Sierra, j'ai mis à jour xcode et ensuite nokogiri s'est installé sans problème.

2 votes

Travailler en 2017! Merci

1 votes

Vous devez en réalité ouvrir Xcode et installer les mises à jour ou exécuter le code suggéré ici.

47voto

Quanlong Points 28

Essayez d'abord d'installer libxml2 avec Homebrew.

brew install libxml2

Ensuite, si vous installez avec bundle

bundle config build.nokogiri --use-system-libraries \
  --with-xml2-include=$(brew --prefix libxml2)/include/libxml2
bundle install

Si vous installez directement avec gem

gem install nokogiri -- --use-system-libraries \
  --with-xml2-include=$(brew --prefix libxml2)/include/libxml2

1 votes

A fonctionné pour moi aussi sur High Sierra. Merci!

4 votes

Wow. Tu as sauvé ma journée. Merci. Je suis sur High Sierra 10.13.3.

11voto

Orangenhain Points 656

Cela pourrait être un doublon de gem install nokogiri -v '1.6.8.1' échoue ... la dernière réponse acceptée là-bas était de faire :

brew unlink xz; bundle install; brew link xz

Relier xz pourrait ne pas être nécessaire ... si par exemple vous avez cette dépendance uniquement à cause de the_silver_searcher (qui se lie directement à la bibliothèque non liée en lien symbolique).

11voto

yuяi Points 729
gem update --system
xcode-select --install
brew unlink xz
gem install nokogiri -v '1.6.8.1'
brew link xz

Si les étapes ci-dessus échouent à résoudre le problème, ce qui a également fonctionné pour moi est d'exécuter brew doctor et de nettoyer tout fichier d'en-tête non brewé.

0 votes

Voici ce qui a fonctionné pour moi. Pour une raison quelconque, 'bundle update' a échoué. J'ai dû installer nokogiri comme suggéré dans cette réponse.

0 votes

J'avais précédemment installé Nokogiri il y a quelques mois seulement, mais j'ai changé de version de Ruby et l'installation de la version 1.8.0 échouait. J'ai réussi à l'installer via le modèle unlink xz / gem isntall (sans mise à jour de gem ou xcode select)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X