J'utilise bundle install
et j'obtiens cette erreur:
Building nokogiri using system libraries.
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/Ruby extconf.rb --use-system-libraries
Building nokogiri using system libraries.
libxml2 version 2.6.21 or later is required!
*** 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
--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.0/usr/bin/Ruby
--help
--clean
--use-system-libraries
--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-xml2-dir
--without-xml2-dir
--with-xml2-include
--without-xml2-include=${xml2-dir}/include
--with-xml2-lib
--without-xml2-lib=${xml2-dir}/lib
--with-libxml-2.0-config
--without-libxml-2.0-config
--with-pkg-config
--without-pkg-config
--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-exslt-dir
--without-exslt-dir
--with-exslt-include
--without-exslt-include=${exslt-dir}/include
--with-exslt-lib
--without-exslt-lib=${exslt-dir}/lib
--with-libexslt-config
--without-libexslt-config
--with-pkg-config
--without-pkg-config
extconf failed, exit code 1
Gem files will remain installed in /Users/myuser/projectpath/vendor/bundle/Ruby/2.0.0/gems/nokogiri-1.6.2.rc2 for inspection.
Results logged to /Users/myuser/projectpath/vendor/bundle/Ruby/2.0.0/extensions/universal-darwin-13/2.0.0/nokogiri-1.6.2.rc2/gem_make.out
An error occurred while installing nokogiri (1.6.2.rc2), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.6.2.rc2'` succeeds before bundling.
Des idées ce que cela pourrait être?
J'ai également installé nokogiri en suivant les instructions du tutoriel , et ce qui est étrange, c'est que la gemme a été installée avec succès. Lorsque j’exécute gem list
, j’ai nokogiri (1.6.2.1)
, mais lorsqu’il exécute bundle install
, l’erreur est affichée.
Les conseils précédents ne m'ont pas aidé, voici la solution pour OS 10.9:
brew install libxml2
bundle config build.nokogiri "--use-system-libraries --with-xml2-include=/usr/local/opt/libxml2/include/libxml2"
bundle install
Sur Mavericks, cette solution de contournement a fonctionné pour moi:
gem install nokogiri -- --use-system-libraries=true --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2
Voir: https://github.com/sparklemotion/nokogiri/issues/1099#issuecomment-43023208
Sur Amazon Linux, j'ai dû installer ces deux bibliothèques de développement, puis spécifier le chemin d'inclusion pour libxml2
$ yum install libxml2-devel libxslt-devel
$ gem install nokogiri -- --use-system-libraries=true --with-xml2-include=/usr/include/libxml2/
J'ai aussi eu quelques problèmes lors de l'installation de nokogiri, puis j'ai installé les paquets suivants, cela a fonctionné pour moi:
libxslt-dev
libxml2-dev
libruby1.8
libreadline-Ruby1.8
libopenssl-Ruby
libxml2
Je ne suis pas sûr, lequel était exactement nécessaire.
http://nokogiri.org/tutorials/installing_nokogiri.html . Reportez-vous à ce lien et installez les dépendances requises pour nokogiri. Puis lancez ceci
bundle config build.nokogiri --use-system-libraries
bundle install
Cela a fonctionné pour OS X El Capitan:
brew install libxml2 libxslt libiconv
Après avoir exécuté the'brew install libxml2 libxslt libiconv ', vous constaterez peut-être qu'ils sont déjà installés. Pas de soucis, il n'est jamais mauvais de vérifier.
Sudo gem install nokogiri -v '1.6.7' -- --use-system-libraries --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib
bundle install
Changez la version de nokogiri, si nécessaire. par exemple.
Sudo gem install nokogiri -v '1.6.5' -- --use-system-libraries --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib
Sur Yosemite 10.10.1, cette étape n'a pas aidé (peut-être que cela fonctionne pour d'autres)
gem install nokogiri -- --use-system-libraries
En gros, le problème sur ma section locale était dû à libxml2
. La solution suivante a donc été efficace.
bundle config build.nokogiri "--use-system-libraries --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/libxml2
bundle install
Sur Yosemite 10.10, les étapes suivantes ont complètement résolu mes problèmes:
Sudo xcode-select -switch /Library/Developer/CommandLineTools
gem uninstall nokogiri libxml-Ruby
gem install nokogiri
L'erreur indique que votre bibliothèque système libxml2 est obsolète. Vous avez besoin de la version 2.6.21 ou ultérieure.
Sur mon système Debian/Ubuntu, nokogiri compile pour moi et je peux voir que j'ai la version 2.9.1.
dpkg -l | grep libxml2-dev
ii libxml2-dev:AMD64 2.9.1+dfsg1-3 AMD64 Development files for the GNOME XML library
Vous avez trois options ici.
Vérifiez si votre gestionnaire de packages du système d'exploitation fournit une version plus récente de la bibliothèque libxml2
Téléchargez le dernier code source libxml2, compilez et installezit
Pour la solution n ° 3, vous mettriez ceci dans votre gemfile: gem 'nokogiri', '1.4.7'
Pour Mac, la raison de son échec est que vous n'aviez pas les derniers outils de développement Xcode. Nokogiri a déjà été fourni avec libxml2. En l'absence des derniers outils de développement Xcode, il ne peut pas créer d'extensions natives.
Pour mettre à jour les outils de développement Xcode à l'aide de:
xcode-select --install
Et alors:
gem install nokogiri
Si vous corrigez en utilisant
gem install nokogiri -- --use-system-libraries
peut recevoir un avertissement similaire plus tard:
WARNING: Nokogiri was built against LibXML version 2.9.3, but has dynamically loaded 2.9.0
Sur OSX 10.12 (Sierra), cela a fonctionné pour moi:
gem install nokogiri -- --use-system-libraries=true --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/libxml2
C'est un vieux fil, mais je rencontre des problèmes similaires, et la solution dans mon cas était très différente de celle affichée jusqu'à présent.
Après quelques recherches, j'ai trouvé le fil suivant: https://github.com/bundler/bundler/issues/2648#issuecomment-25124800
Il parle de bundler utilisant une version différente de Ruby à celle utilisée par gem.
De la pâte d'OP, nous pouvons voir que le lieur utilise la copie de Ruby sur le système Mac:
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/Ruby
Dans mon cas, j'ai trouvé que la gemme venait de brasser; which gem
a donné /usr/local/bin/gem
aux liens symboliques vers /Cellar/Ruby/2.3.3/bin/gem
. Je suppose que le cas du PO était le même.
Ainsi, gem et bundler ne fonctionnent pas avec la même installation de Ruby, ce qui explique pourquoi l'OP voit ceci:
Lorsque je lance la liste des gemmes, j'ai nokogiri (1.6.2.1), mais lors de l'exécution de l'installation en bundle, l'erreur est affichée.
Dans mon cas, j’ai simplement exécuté gem install bundler
, ce qui a permis à bundler de commencer à utiliser la version brassée de Ruby, et tous les problèmes ont disparu.
J'ai eu ce problème précis. Je lance un environnement Rails sur un Mac. Après avoir passé de Yosemite à Sierra, je pense que c’est à ce moment-là que tout a commencé.
Pour résoudre le problème, il me suffisait d'installer xcode command line tools
. Je ne sais pas si la mise à niveau Sierra les a supprimés ou quoi.
xcode-select --install
(ceci installera le xcode command line tools
)
Aussi un autre symptôme ... des choses comme le statut de git ne fonctionnera pas. Après cela, j'ai pu faire Rails new appname et c'était bien.
Ce fil sur GitHub m'a donné le truc dont j'avais besoin pour installer Nokogiri 1.6.2:
Mon ~/.gitconfig avait le paramètre
autocrlf = input
. Lorsque je supprime ce paramètre, la construction nokogiri réussit.
Sur Yosemite 10.10, cette solution de contournement a fonctionné pour moi:
gem install nokogiri -- --use-system-libraries
Pour #CentOS, je devais faire ce qui suit:
gem update --system
yum install libxml2-devel libxslt-devel Ruby-devel
gem install nokogiri -- --use-system-libraries