web-dev-qa-db-ja.com

rails 5.0.0 "nio4r"のインストール時:gemネイティブ拡張のビルドに失敗しました

これがログです: 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

バンドルをインストールすると、戻ります(ログの117行目から始まります):

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

そのため、バンドルをインストールできません。最後に戻ります:

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.

注:他の質問で解決策を試しましたが、それでも同じです。 「nio4r」を手動でインストールできる場合はその方法を教えてください。

9
Mfms99

私のRailsをV5.0.0にアップグレードしようとしたときに同じ問題に直面しています。こちらの「Ruby DevKitのインストール」セクションをお読みください>> http://jekyll-windows.juthilo.com/1-Ruby-and-devkit/

7
Melvin

Fedora 64ビットのソリューション

Sudo dnf install redhat-rpm-config
3
lord5et

同様の問題があり、このコマンドを実行すると問題が解決しました。

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

これで、後でbundle installを正常に実行できます。

1
techdreams

息子がこの問題を解決してくれました。問題は、最初にRubyをインストールし、次にRailsインストーラーをインストールしたことです。そのため、Rubyをアンインストールして再インストールする必要がありました。 Railsインストーラーのみ。

1
David Hernandez

Railsも設定しているため、この問題に遭遇しました(phpの代わりを探しています)。

  • X86 Ruby x64 Devkitと一緒にインストールしたので、最初にx64 Rubyをインストールしてx86バージョンをアンインストールしたものをダウンロードしました。パスを確認しました。変数は適切に設定されていました。
  • 次に、このページの指示に従ってdevkitをインストールしました http://rubyonwindowsguides.github.io/book/ch02-04.html
  • 最後に私はRailsをインストールしました、そして今回はエラーなしでうまくいきました

お役に立てれば

1
Hezzy Okello

ログ出力から引用するには:

コンパイラは実行可能ファイルの生成に失敗しました。 (RuntimeError)最初に開発ツールをインストールする必要があります。

Windowsでは、gemをコンパイルできるように DevKitをインストール する必要があります。

0
Holger Just

Ubuntu 16.04でも同じ問題がありました。これを修正するために私がしたこと:

Gemfile.lockを削除します。Sudorm Gemfile.lock Installed Ruby-Dev:

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

そして重要なステップ:REBOOT!

0
keke

Windowsを使用してインストールされている場合Rubyバージョンが2.4以上のRubyInstallerを使用する場合は、RubyInstaller WebサイトからDevKitをインストールせず、Ruby(msysとmingwの両方をインストールするには、番号3を入力してください)devkitディレクトリとそのパスをPATH環境変数から削除します。これにより、rubygemsがnio4rをインストールしてCコンパイラを呼び出すと、msysが呼び出されます。 ones。こちらをお読みください https://rubyinstaller.org/2017/05/25/rubyinstaller-2.4.1-1-released.html RubyInstallerのMSYS2とDevKitに関する詳細情報

0
SkipIntro

Gemfile.lockを削除してbundle installコマンドを実行します

0