Un de mes développeurs a mis à jour Nokogiri et lors de l'extraction du fichier Gemfile mis à jour, mon bundle install
échoue.
➜ my-project git:(master) bundle install
Fetching source index from https://rubygems.org/
Using rake 10.4.2
Using i18n 0.7.0
Using json 1.8.3
Using minitest 5.8.3
Using thread_safe 0.3.5
Using tzinfo 1.2.2
Using activesupport 4.2.3
Using builder 3.2.2
Using erubis 2.7.0
Using mini_portile2 2.0.0
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
/Users/me/.rvm/rubies/Ruby-2.1.2/bin/Ruby extconf.rb --use-system-libraries
checking if the C compiler accepts ... yes
checking if the C compiler accepts -Wno-error=unused-command-line-argument-hard-error-in-future... no
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=/Users/me/.rvm/rubies/Ruby-2.1.2/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-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
extconf failed, exit code 1
Gem files will remain installed in /Users/me/.rvm/gems/Ruby-2.1.2@my-project/gems/nokogiri-1.6.7 for inspection.
Results logged to /Users/me/.rvm/gems/Ruby-2.1.2@my-project/extensions/x86_64-darwin-13/2.1.0-static/nokogiri-1.6.7/gem_make.out
An error occurred while installing nokogiri (1.6.7), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.6.7'` succeeds before bundling.
Comme suggéré dans " Échec de l’installation de Nokogiri gem ", j’ai tenté en vain d’exécuter:
bundle config build.nokogiri --use-system-libraries
bundle install
Comme suggéré dans " Ne pas installer Nokogiri gem ", j'ai aussi essayé:
gem install nokogiri -- --use-system-libraries
et:
gem install nokogiri -v 1.6.5 -- --use-system-libraries
La version de mon système d'exploitation est El Capitan 10.11.2 et j'ai vérifié que le contrat de licence Xcode avait été accepté.
Des idées pour réussir l'installation de Nokogiri?
Vous devez d'abord installer les packages xcode-select
, puis essayez à nouveau d'installer nokogiri. Essayez ces commandes,
xcode-select --install
alors essaye
gem install nokogiri
avec la version de Nokogiri de votre choix.
Nokogiri dépend de plusieurs bibliothèques telles que libxslt, libxml et zlib. Les versions de Dev (y compris les sources) doivent être installées avant d’installer Nokogiri dans n’importe quelle distribution Linux. Pour OS X, la commande ci-dessus devrait fonctionner, je suppose.
La solution actuelle est dans les commentaires ci-dessous.
Essaye ça :
gem install nokogiri -- --use-system-libraries --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib/
Et puis courir
bundle update
J'espère que cela pourrait vous aider :)
Si vous utilisez homebrew pour gérer des bibliothèques telles que libml sur votre mac, la commande suivante sur votre mac peut vous aider:
gem install nokogiri -v '1.6.8' -- --use-system-libraries --with-xml2-include=/usr/local/Cellar/libxml2/2.9.2/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.2/lib/
assurez-vous simplement que le chemin d'accès pour libxml est le même que le mien, à moins que Brew ne change avec la version suivante. Vous pouvez le vérifier en exécutant la commande ci-dessous:
brew info libxml2
Ajoutez gem "nokogiri", ">= 1.6.7.rc3"
dans votre Gemfile
puis courir
bundle install
essayez de:
apt-get install Ruby-nokogiri
bundle install
Les étapes suivantes ont fonctionné pour moi
Ruby -v
Ruby 2.0.0p247 (2013-06-27 revision 41674) [universal.x86_64-darwin13]
Run the following to install RVM and the latest stable version of Ruby:
\curl -L https://get.rvm.io | bash -s stable --Ruby
Install the Ruby interpreter:
rvm install 2.1.0 --autolibs=enable
After that's finished installing, run:
source /Users/{your_user_name}/.rvm/scripts/rvm
Run:
Ruby -v
Ruby 2.1.0p76 (2014-02-24 revision 45161) [x86_64-darwin13.0]
==> Sudo gem install bundler
Fetching: bundler-1.14.6.gem (100%)
Successfully installed bundler-1.14.6
Parsing documentation for bundler-1.14.6
Installing ri documentation for bundler-1.14.6
Done installing documentation for bundler after 4 seconds
1 gem installed
Merci d'avoir posté ceci! J'ai finalement réussi à exécuter correctement nokogirl avec bundle install
pour mon application après avoir exécuté ce qui suit:
bundle config build.nokogiri --use-system-libraries
La mise à jour des outils Xcode et de ligne de commande a corrigé toutes les erreurs pour moi. Après cela, je pouvais installer Nokogiri avec gem, installer nokogiri et après cela, installer Rails a bien fonctionné.