2016-07-20 5 views
9

hier zu bauen, sind die Protokolle: http://pastebin.com/CAgur9xdSchienen 5.0.0, wenn "nio4r" Installation: Fehler gem native Erweiterung

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 

bei der Installation bündeln kehrt (beginnt in Zeile 117 in den Protokollen):

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

Also das Bündel kann nicht installiert werden. Es gibt am Ende:

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. 

Hinweis: ich die Lösungen auch in anderen Fragen versucht haben, aber es ist immer noch das gleiche. Wenn es möglich ist, "nio4r" manuell zu installieren, sagen Sie mir bitte wie.

+0

gem nio4r -v ‚1.2.1‘ laufenden Betrieb installiert und/es wird Ihre Fehler beheben – Vishal

+0

es gibt diesen: http://pastebin.com/czfiV0Gb – Mfms99

+0

Wenn Fragen stellen, bitte immer das Fehlerprotokoll direkt in die Frage einbeziehen. Bitte verlinken Sie nicht auf externe Pastieseiten, da die Logs dort schnell verschwinden, was die Frage in Zukunft viel weniger nützlich macht. –

Antwort

7

Ich habe das gleiche Problem, während ich versuchte, meine Rails auf V5.0.0 zu aktualisieren, ich folge dieser Anweisung und es funktioniert perfekt. Lesen Sie den Abschnitt "Installiere das Ruby DevKit" hier >>http://jekyll-windows.juthilo.com/1-ruby-and-devkit/

+1

Ich kann Ihnen nicht genug danken, mein Freund, einige Leute sagten mir vorher über DevKit, aber ohne Anweisungen, so konnte ich es nicht zu Rubin verbiegen. Natürlich gab es andere Probleme, aber sie sind jetzt gelöst. Nochmals vielen Dank – Mfms99

+0

Downgrade auf Ruby 2.2.5, wenn Sie Probleme haben. In meinem Fall funktioniert Rails 5.0.0 nicht gut mit Ruby 2.3.1. –

+0

@ MelvinCh'ng Ich habe auch Probleme mit Rails 5 + Ruby 2.3.1 und einigen Edelsteinen (nio4r, pg, puma, websocker-driver). Ist das ein bekanntes Problem? – jaysoifer

0

Entfernen Sie die Gemfile.lock und Bündel laufen

+0

Dies ist sehr unrecommended. Es kann dazu führen, dass du Edelsteine ​​aktualisierst, die du nicht möchtest. – gizotti

+0

Ok, aber das ist für mich gearbeitet. –

+0

Das Aktualisieren des Gem nio4r von v2.0.0 auf v2.1.0 hat das Problem für mich gelöst. – Grilse

0

Befehl installieren aus dem Log-Ausgabe zu zitieren:

Der Compiler eine ausführbare Datei zu erzeugen, fehlgeschlagen. (RuntimeError) Sie müssen zuerst Entwicklungswerkzeuge installieren.

Unter Windows müssen Sie install the DevKit, um Edelsteine ​​kompilieren zu können.

+0

ich installierte es und lief das Setup und markierte alles im Setup, aber als es fertig war und ich es erneut versuchte gab es mir das gleiche Ergebnis. Habe ich bei der Installation von DefKit etwas falsch gemacht? – Mfms99

+0

sollte ich eine bestimmte Version von DefKit installieren? Ich habe Version 2.2.5 installiert – Mfms99

1

Ich stieß auf dieses Problem, als ich auch Schienen aufstellte. (Suche nach einer Alternative zu PHP).

  • Ich erkannte, dass ich x86 Ruby mit x64 Devkit installiert hatte, so dass ich heruntergeladen erste x64 Rubin, die ich die x86-Version installiert und deinstalliert. Ich stellte sicher, dass meine Pfadvariablen gut eingestellt waren.
  • Dann installiert i devkit mit den Anweisungen auf dieser Seite http://rubyonwindowsguides.github.io/book/ch02-04.html
  • i Schließlich Schienen installiert und es funktionierte gut ohne die Fehler diesmal

Hope this

+0

Ich habe es anders gemacht ..! x64 ruby ​​mit x32 devkit installiert, realisierte es nur, wenn ich versuchte, die Edelsteine ​​in ihrem Verzeichnis zur Inspektion zu sehen ,,, Und speicherte meinen Tag :) –

1

Mein Sohn hilft mir dieses Problem behoben . Das Problem war, dass ich zuerst Ruby und dann das Rails-Installationsprogramm installierte. Also musste ich Ruby deinstallieren und nur mit dem Rails-Installer neu installieren.

+0

lol versuchte verschiedene Dinge für 2 Stunden und das war die Lösung. Gut gemacht, dieser Junge! – Magicode

0

Ich hatte ein ähnliches Problem und die Ausführung dieses Befehls löste mein Problem.

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

Jetzt können Sie erfolgreich bundle install danach ausführen.

3

Lösung für Fedora 64-Bit-

sudo dnf install redhat-rpm-config 
0

hatte das gleiche Problem auf Ubuntu 16.04. Was ich getan habe, um dies zu beheben:

Entfernen Gemfile.lock: sudo rm Gemfile.sperren installiert Rubin-Dev:

sudo apt-Add-Repository ppa: brightbox/ruby-ng sudo apt-get update sudo apt-get install ruby2.4-dev

und der wichtige Schritt: REBOOT!

0

Wenn Sie Windows verwenden und Ruby mit RubyInstaller mit Version größer oder gleich 2.4 installieren, sollten Sie DevKit nicht von der RubyInstaller-Website installieren und nur 'msys64' verwenden, das nach Ruby mit RubyInstaller installiert wird (stellen Sie sicher, dass Sie Nummer 3 eingeben) um sowohl msys als auch mingw zu installieren. Löschen Sie das devkit-Verzeichnis und seinen Pfad von der PATH-Umgebungsvariablen. Wenn rubygems also versucht, nio4r zu installieren und C-Compiler aufzurufen, ruft es msys auf. hier https://rubyinstaller.org/2017/05/25/rubyinstaller-2.4.1-1-released.html Lesen Sie für weitere Informationen über MSYS2 und DevKit in RubyInstaller

Verwandte Themen