2
votes

Erreur d'installation du bundle lors de l'installation de nokogiri (1.6.7.2). Gem s'installe mais pas pour l'application rails

Je travaille sur un projet de rails qui utilise ruby ​​2.1.5. J'ai téléchargé rvm, installé ruby ​​2.1.5 et je l'utilise actuellement. Je suis sur Ubuntu 18.04. Je reçois l'erreur ci-dessous lorsque j'exécute bundle install

Aussi quand j'essaye gem install nokogiri -v '1.6.7.2' comme indiqué, il s'installe très bien. Je n'ai pas pu trouver d'autre question où c'était le cas.

J'ai regardé cette question Erreur lors de l'installation de Nokogiri (1.6.7) sur El Capitan et j'ai essayé toutes les solutions. Cela peut être un problème différent que je rencontre. Cela peut être lié à rvm, mais je ne suis pas sûr.

$ gem install nokogiri -v 1.6.7.2
Building native extensions. This could take a while...
Successfully installed nokogiri-1.6.7.2
Parsing documentation for nokogiri-1.6.7.2
Done installing documentation for nokogiri after 2 seconds
1 gem installed

Mais comme vous pouvez le voir, quand je lance gem install nokogiri -v '1.6.7.2' il semble qu'il n'y ait pas de problème

$ bundle install
Fetching gem metadata from https://rubygems.org/........
Using rake 11.1.2
Using CFPropertyList 2.3.3
Using i18n 0.7.0
Using json 1.8.3
Using minitest 5.8.4
Using thread_safe 0.3.5
Using tzinfo 1.2.2
Using activesupport 4.2.4
Using builder 3.2.2
Using erubis 2.7.0
Using mini_portile2 2.0.0
Fetching nokogiri 1.6.7.2
Installing nokogiri 1.6.7.2 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory:
/media/mcgoy/CD25-ED8E/Upwork/EVSlideShow/Rails/vendor/bundle/ruby/2.1.0/gems/nokogiri-1.6.7.2/ext/nokogiri
/usr/share/rvm/rubies/ruby-2.1.5/bin/ruby -r ./siteconf20190123-15188-1qpzj0b.rb extconf.rb
--use-system-libraries
checking if the C compiler accepts ... *** 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=/usr/share/rvm/rubies/ruby-2.1.5/bin/ruby
    --help
    --clean
/usr/share/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/mkmf.rb:456:in `try_do': The compiler failed to
generate an executable file. (RuntimeError)
You have to install development tools first.
    from /usr/share/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/mkmf.rb:571:in `block in try_compile'
    from /usr/share/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/mkmf.rb:522:in `with_werror'
    from /usr/share/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/mkmf.rb:571:in `try_compile'
    from extconf.rb:80:in `nokogiri_try_compile'
    from extconf.rb:87:in `block in add_cflags'
    from /usr/share/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/mkmf.rb:621:in `with_cflags'
    from extconf.rb:86:in `add_cflags'
    from extconf.rb:336:in `<main>'

To see why this extension failed to compile, please check the mkmf.log which can be found here:

/media/mcgoy/CD25-ED8E/Upwork/EVSlideShow/Rails/vendor/bundle/ruby/2.1.0/extensions/x86_64-linux/2.1.0/nokogiri-1.6.7.2/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in
/media/mcgoy/CD25-ED8E/Upwork/EVSlideShow/Rails/vendor/bundle/ruby/2.1.0/gems/nokogiri-1.6.7.2
for inspection.
Results logged to
/media/mcgoy/CD25-ED8E/Upwork/EVSlideShow/Rails/vendor/bundle/ruby/2.1.0/extensions/x86_64-linux/2.1.0/nokogiri-1.6.7.2/gem_make.out

An error occurred while installing nokogiri (1.6.7.2), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.6.7.2' --source 'https://rubygems.org/'` succeeds
before bundling.

In Gemfile:
  rails was resolved to 4.2.4, which depends on
    actionmailer was resolved to 4.2.4, which depends on
      actionpack was resolved to 4.2.4, which depends on
        actionview was resolved to 4.2.4, which depends on
          rails-dom-testing was resolved to 1.0.7, which depends on
            nokogiri


0 commentaires

3 Réponses :


2
votes

comme référence ici Installation de Nokogiri

gem update --system
xcode-select --install # Then agree to the terms, even if you have done this before!
gem install nokogiri

# if that's still not working uninstall the old nokogiri 
gem uninstall nokogiri

cette option ci-dessus pour mac os et pour ubuntu est déjà mentionnée par javier (dans une autre réponse, si le problème persiste ma suggestion vous faites d'abord gem désinstaller nokogiri, puis faites gem installer nokogiri -v '1.6.7.2'


2 commentaires

Ces instructions sont pour OSX, puis-je les utiliser pour Ubuntu? Et qu'est-ce que xcode-select?


xcode-select juste pour mac os, c'est la bibliothèque de paquets (presque la même chose avec ubuntu lorsque vous faites sudo apt-get install), ma suggestion de désinstaller d'abord, puis d'installer avec gem install nokogiri -v '1.6.7.2'



2
votes

Voici les instructions pour ubuntu docs

gem install nokogiri --use-system-libraries

Pour rvm

sudo apt-get install libxml2-dev libxslt1-dev

Construire avec les bibliothèques système

sudo apt-get install libgmp-dev

Installer

sudo apt-get install build-essential patch ruby-dev zlib1g-dev liblzma-dev


3 commentaires

Merci. Installée. mais le même problème persiste!


essayez ceci: gem install nokogiri -v '1.6.7.2' --use-system-bibliothèques, cela devrait soulever l'erreur


@RandallCoding Je pense que le problème était que l'installation du bundle utilisait cette option --use-system-libraries, et votre système manquait probablement de libxml2-dev et libxslt1-dev



1
votes

Je l'ai corrigé, mais c'est peut-être une réponse insatisfaisante. J'ai parcouru tous les conseils, installé diverses dépendances, modifié divers paramètres. Rien ne semblait fonctionner. Ensuite, j'ai supprimé le dossier du projet et l'ai extrait à nouveau de Github, réinstallé rvm, exécuté à nouveau bundle install et tout a fonctionné normalement.

Alors, quelle est la seule chose qui me manquait? Je ne peux pas être sûr. Mais je peux dire si rien d'autre ne fonctionne, créez un nouveau dossier et téléchargez à nouveau le projet et exécutez bundle install .. après avoir installé toutes les dépendances / outils d'abord bien sûr, trouvé ici -> https://nokogiri.org/tutorials/installing_nokogiri.html


0 commentaires