web-dev-qa-db-fra.com

rails 5.0.0 lors de l'installation de "nio4r": échec de la création de l'extension native gem

Voici les journaux: http://Pastebin.com/CAgur9xd

Installing nio4r 1.2.1 with native extensions

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    C:/RailsInstaller/Ruby2.2.0/bin/Ruby.exe -r ./siteconf20160720-8272-c88sgk.rb extconf.rb --with-cflags=-std=c99
checking for unistd.h... *** 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=C:/RailsInstaller/Ruby2.2.0/bin/$(Ruby_BASE_NAME)
C:/RailsInstaller/Ruby2.2.0/lib/Ruby/2.2.0/mkmf.rb:456:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
        from C:/RailsInstaller/Ruby2.2.0/lib/Ruby/2.2.0/mkmf.rb:587:in `try_cpp'
         from C:/RailsInstaller/Ruby2.2.0/lib/Ruby/2.2.0/mkmf.rb:1060:in `block in have_header'
        from C:/RailsInstaller/Ruby2.2.0/lib/Ruby/2.2.0/mkmf.rb:911:in `block in checking_for'
        from C:/RailsInstaller/Ruby2.2.0/lib/Ruby/2.2.0/mkmf.rb:351:in `block (2 levels) in postpone'
        from C:/RailsInstaller/Ruby2.2.0/lib/Ruby/2.2.0/mkmf.rb:321:in `open'
        from C:/RailsInstaller/Ruby2.2.0/lib/Ruby/2.2.0/mkmf.rb:351:in `block in postpone'
        from C:/RailsInstaller/Ruby2.2.0/lib/Ruby/2.2.0/mkmf.rb:321:in `open'
        from C:/RailsInstaller/Ruby2.2.0/lib/Ruby/2.2.0/mkmf.rb:347:in `postpone'
        from C:/RailsInstaller/Ruby2.2.0/lib/Ruby/2.2.0/mkmf.rb:910:in `checking_for'
        from C:/RailsInstaller/Ruby2.2.0/lib/Ruby/2.2.0/mkmf.rb:1059:in `have_header'
        from extconf.rb:3:in `<main>'

extconf failed, exit code 1

lors de l'installation de bundle, il retourne (commence à la ligne 117 dans les journaux):

Installing nio4r 1.2.1 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

Donc, le paquet ne peut pas être installé. Il retourne à la fin:

An error occurred while installing nio4r (1.2.1), and Bundler cannot continue.
Make sure that `gem install nio4r -v '1.2.1'` succeeds before bundling.

Note: J'ai essayé les solutions dans d'autres questions, mais c'est toujours pareil . S'il est possible d'installer manuellement "nio4r", dites-moi comment.

9
Mfms99

Je suis confronté au même problème lorsque j'essayais de mettre à niveau Rails vers la version 5.0.0. Je suis ces instructions et tout fonctionne parfaitement. Lire la section "Installer le Kit de développement Ruby" ici >> http://jekyll-windows.juthilo.com/1-Ruby-and-devkit/

7
Melvin Ch'ng

Solution pour Fedora 64bit

Sudo dnf install redhat-rpm-config
3
lord5et

Mon fils a résolu ce problème pour moi. Le problème était que j'ai d'abord installé Ruby puis le programme d'installation de Rails. J'ai donc dû désinstaller Ruby et réinstaller avec le programme d'installation de Rails uniquement. 

1
David Hernandez

J'ai rencontré ce problème alors que je configurais Rails également. (chercher une alternative au php).

  • J'ai réalisé que j'avais installé x86 Ruby avec x64 Devkit. J'ai donc d'abord téléchargé x64 Ruby, que j'ai installé et désinstallé la version x86. Je me suis assuré que mes variables de chemin étaient bien définies.
  • Ensuite, j’ai installé devkit en suivant les instructions de cette page http://rubyonwindowsguides.github.io/book/ch02-04.html
  • Enfin, j'ai installé Rails et cela a bien fonctionné sans les erreurs cette fois-ci

J'espère que cela t'aides

1
Hezzy Okello

J'ai eu un problème similaire et l'exécution de cette commande a résolu mon problème.

bundle config build.nio4r --with-cflags="-std=c99"

Maintenant, vous pouvez exécuter avec succès bundle install par la suite.

0
techdreams

Pour citer votre sortie de journal:

Le compilateur n'a pas réussi à générer un fichier exécutable. (Erreur d'exécution) Vous devez d'abord installer les outils de développement.

Sous Windows, vous devez installer le DevKit pour pouvoir compiler des gems.

0
Holger Just

Avait ce même problème sur Ubuntu 16.04 . Ce que j'ai fait pour résoudre ce problème:

Supprimez Gemfile.lock: Sudo rm Gemfile.lock Installé Ruby-Dev: 

Sudo apt-add-repository ppa: brightbox/Ruby-ng Sudo apt-get mise à jour Sudo apt-get install Ruby2.4-dev

et l'étape importante: redémarrer!

0
keke

Si vous utilisez Windows et que vous avez installé Ruby avec RubyInstaller avec une version supérieure ou égale à 2.4, vous ne devez pas installer DevKit à partir du site Web RubyInstaller et utiliser uniquement 'msys64' qui est installé après Ruby avec RubyInstaller (assurez-vous de taper le numéro 3 pour installer les deux et mingw). Supprimez le répertoire devkit et son chemin de la variable d’environnement PATH. Ainsi, lorsque rubygems tentera d’installer nio4r et d’appeler les compilateurs C, il appellera ceux de msys . Lisez ici https://rubyinstaller.org/17/05/05/25 /rubyinstaller-2.4.1-1-released.html pour plus d'informations sur MSYS2 et DevKit dans RubyInstaller 

0
SkipIntro

Supprimez Gemfile.lock et exécutez la commande bundle install

0
Hemanthkumar Naik