web-dev-qa-db-fra.com

Après la mise à niveau vers macOS, la mise à jour de la gemme Mojave échoue

Construire des extensions natives. Cela pourrait prendre un certain temps ... ERROR: Erreur lors de l’installation de libxml-Ruby: ERREUR: Impossible de créer une extension native de gem.

current directory: /Library/Ruby/Gems/2.3.0/gems/libxml-Ruby-3.1.0/ext/libxml

/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/Ruby -r ./siteconf20180926-80978-eoqfjh.rb extconf.rb Vérifier libxml/xmlversion.h dans/opt/include/libxml2,/opt/local/include/libxml2,/usr/local/include/libxml2,/usr/include/libxml2 ... no * extconf.rb a échoué * .__ Impossible de créer le fichier Makefile pour une raison quelconque, probablement le manque de bibliothèques et/ou d’en-têtes nécessaires Consultez le fichier mkmf.log pour plus de détails. Vous pouvez avoir besoin d'options de configuration.

Options de configuration fournies: --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.3/usr/bin/$ (Ruby_BASE_NAME) --with-xml2-config --without-xml2-config --with-xml2-dir --without-xml2-dir --with-xml2-include --without-xml2-include = $ {rép_xml2}/include --with-xml2-lib --without-xml2-lib = $ {rép_XML2}/lib échec extconf: besoin de libxml2.

Install the library or try one of the following options to extconf.rb:

  --with-xml2-config=/path/to/xml2-config
  --with-xml2-dir=/path/to/libxml2
  --with-xml2-lib=/path/to/libxml2/lib
  --with-xml2-include=/path/to/libxml2/include

Pour voir pourquoi cette extension n'a pas pu être compilée, veuillez consulter le fichier mkmf.log que vous pouvez trouver ici:

/Library/Ruby/Gems/2.3.0/extensions/universal-darwin-18/2.3.0/libxml-Ruby-3.1.0/mkmf.log

extconf a échoué, code de sortie 1

Les fichiers Gem resteront installés dans /Library/Ruby/Gems/2.3.0/gems/libxml-Ruby-3.1.0 pour l'inspection . Les résultats consignés dans /Library/Ruby/Gems/2.3.0/extensions/universal- darwin-18/2.3.0/libxml-Ruby-3.1.0/gem_make.out Mise à jour de nokogiri Construction d'extensions natives. Cela pourrait prendre un certain temps ... ERREUR: lors de l'exécution de gem ... (Gem :: FilePermissionError) Vous n'avez pas les autorisations d'écriture pour le répertoire/usr/bin.

12
Jozef Dransfield

L'erreur est due à macOS. Mojave a cessé de placer les fichiers d'en-tête standard dans /usr/include, en les conservant uniquement dans le répertoire XCode.

Vous pouvez le vérifier en exécutant ls /usr/include et très probablement ce répertoire n'existe plus. Au contraire, le truc habituel en exécutant xcode-select --install ne résoudra pas le problème.

Le correctif consiste à exécuter le programme d'installation hérité fourni par Apple qui installera les fichiers d'en-tête sur /usr/include

Sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /

30
alotofnoodles

Si vous utilisez homebrew, l'approche recommandée consiste à indiquer à pkg-config où il peut trouver la bibliothèque libxml2:

brew reinstall libxml2
export PKG_CONFIG_PATH="/usr/local/opt/libxml2/lib/pkgconfig"
2
codenamev

En outre, vous pouvez avoir une configuration de paquet obsolète, ce qui vous gêne. Lancez bundle config build.nokogiri --use-system-libraries et vous recevrez un avertissement et vous montrera quelle configuration vous avez actuellement. Je suivais tous les guides et réinstallais toutes les pierres précieuses et même Ruby à quelques reprises seulement pour découvrir que la configuration était configurée pour utiliser un chemin qui n'existe plus.

0
Andrei R