質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.93%

gem install rails エラー

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 2,720

score 214

いつもお世話になります。
Ruby、Ruby on railsに関しては全くの初心者のため、間違ったことなど多いとは思いますがご容赦いただけますと助かります。

https://techacademy.jp/magazine/7058

上記の記事を参考にrubyとdevkitを入れるところまではできたのですが、gem install railsを実行したときにエラーが出てしまいます。
エラー内容は下記のとおりで、いろいろ調べてみたのですがnio4rのエラーについての記事はうまく発見することができず難航しております。mkmf.logを見ても全くわからず……。

ご助力いただけますと助かります。
よろしくお願いいたします。

ruby -vは下記の通り実行されます。

C:\Users\XXXX>ruby -v
ruby 2.4.1p111 (2017-03-22 revision 58053) [x64-mingw32]

C:\Users\XXXX>gem install rails
Fetching: activesupport-5.1.3.gem (100%)
Successfully installed activesupport-5.1.3
Fetching: actionview-5.1.3.gem (100%)
Successfully installed actionview-5.1.3
Fetching: actionpack-5.1.3.gem (100%)
Successfully installed actionpack-5.1.3
Fetching: activemodel-5.1.3.gem (100%)
Successfully installed activemodel-5.1.3
Fetching: activerecord-5.1.3.gem (100%)
Successfully installed activerecord-5.1.3
Fetching: activejob-5.1.3.gem (100%)
Successfully installed activejob-5.1.3
Fetching: actionmailer-5.1.3.gem (100%)
Successfully installed actionmailer-5.1.3
Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
ERROR:  Error installing rails:
        ERROR: Failed to build gem native extension.

    current directory: C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/nio4r-2.1.0/ext/ni
o4r
C:/Ruby24-x64/bin/ruby.exe -r ./siteconf20170806-8120-6a2ufm.rb extconf.rb
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:/Ruby24-x64/bin/$(RUBY_BASE_NAME)
C:/Ruby24-x64/lib/ruby/2.4.0/mkmf.rb:457:in `try_do': The compiler failed to gen
erate an executable file. (RuntimeError)
You have to install development tools first.
        from C:/Ruby24-x64/lib/ruby/2.4.0/mkmf.rb:588:in `try_cpp'
        from C:/Ruby24-x64/lib/ruby/2.4.0/mkmf.rb:1095:in `block in have_header'

        from C:/Ruby24-x64/lib/ruby/2.4.0/mkmf.rb:945:in `block in checking_for'

        from C:/Ruby24-x64/lib/ruby/2.4.0/mkmf.rb:351:in `block (2 levels) in po
stpone'
        from C:/Ruby24-x64/lib/ruby/2.4.0/mkmf.rb:321:in `open'
        from C:/Ruby24-x64/lib/ruby/2.4.0/mkmf.rb:351:in `block in postpone'
        from C:/Ruby24-x64/lib/ruby/2.4.0/mkmf.rb:321:in `open'
        from C:/Ruby24-x64/lib/ruby/2.4.0/mkmf.rb:347:in `postpone'
        from C:/Ruby24-x64/lib/ruby/2.4.0/mkmf.rb:944:in `checking_for'
        from C:/Ruby24-x64/lib/ruby/2.4.0/mkmf.rb:1094:in `have_header'
        from extconf.rb:5:in `<main>'

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

  C:/Ruby24-x64/lib/ruby/gems/2.4.0/extensions/x64-mingw32/2.4.0/nio4r-2.1.0/mkm
f.log

extconf failed, exit code 1

Gem files will remain installed in C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/nio4r-
2.1.0 for inspection.
Results logged to C:/Ruby24-x64/lib/ruby/gems/2.4.0/extensions/x64-mingw32/2.4.0
/nio4r-2.1.0/gem_make.out
"x86_64-w64-mingw32-gcc -o conftest.exe -IC:/Ruby24-x64/include/ruby-2.4.0/x64-mingw32 -IC:/Ruby24-x64/include/ruby-2.4.0/ruby/backward -IC:/Ruby24-x64/include/ruby-2.4.0 -I. -D_FORTIFY_SOURCE=2 -D__USE_MINGW_ANSI_STDIO=1 -DFD_SETSIZE=2048 -IC:/msys64/mingw64/lib/libffi-3.2.1/include -D_WIN32_WINNT=0x0501 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64  -march=x86-64 -mtune=generic -O2 -pipe -IC:/msys64/mingw64/lib/libffi-3.2.1/include conftest.c  -L. -LC:/Ruby24-x64/lib -L. -pipe     -lx64-msvcrt-ruby240  -lgmp -lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi  "
c:/devkit/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lgmp
collect2.exe: error: ld returned 1 exit status
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: #include <winsock2.h>
4: #include <windows.h>
5: int main(int argc, char **argv)
6: {
7:   return 0;
8: }
/* end */
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

0

メッセージからすると、gmpのライブラリがないのではないでしょうか。

RubyInstaller2.4をインストールしたのであれば、mingwのパッケージ管理ツールpacmanがインストールされていると思いますので、
pacman -Ss gmpしてみてインストールされていなければ、pacman -S mingw-w64-x86_64-gmpで。

しかし、64bitRubyですか。特に64bitである積極的な理由がない限り、32bitにして置いた方が苦労が少ないと思っていましたが、そろそろ64bitなんですかね。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/08/07 19:10

    ご回答ありがとうございます。「pacman -Ss gmp」を実行してみたのですが
    C:\>pacman -Ss gmp
    'pacman' は、内部コマンドまたは外部コマンド、
    操作可能なプログラムまたはバッチ ファイルとして認識されていません。
    というエラーが出てしまいます。

    不勉強で申し訳ありません。なにか他に必要なことがあるのでしょうか。ご教示いただけますと幸いです。

    キャンセル

  • 2017/08/07 20:58

    PATHを通してないのですかね。
    それでは、MSYSのディレクトリの中にある、MSYS2.EXEを実行してそのプロンプト内で実行してください。

    キャンセル

  • 2017/08/07 23:31

    otn様のご指摘にありました、Rubyの64bitではなく32bit版を入れて同じようにしたところgem install railsが通り無事インストールすることができました。本当にありがとうございます。

    また、質問の際にはご助力いただければ幸いです。

    キャンセル

0

Ruby系のツールは*nix系(MacとかLinuxとか)しか考えていない人が作っていることがあって、
そこでコケている可能性もなくはありません。

そこで、Windowsじゃなくてubuntuあたりで動かせば良い、というアプローチがあります。
まだ試していなければ、 bash on windows あるいは
vagrant を使って構築することを検討してみてください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.93%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る