【Ruby】【Rails】gem install railsがコケる
■topic summary
Error installing rails X(
はまった。。。
gem install rails
がなぜかコケる。
■ログ
$ gem install rails Fetching: atomic-1.1.14.gem (100%) 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. c:/Ruby200/bin/ruby.exe extconf.rb *** 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:/Ruby200/bin/ruby --with-atomic_reference-dir --without-atomic_reference-dir --with-atomic_reference-include --without-atomic_reference-include=${atomic_reference-dir}/include --with-atomic_reference-lib --without-atomic_reference-lib=${atomic_reference-dir}/ c:/Ruby200/lib/ruby/2.0.0/mkmf.rb:430:in `try_do': The compiler failed to generate an executable file. (RuntimeError) You have to install development tools first. from c:/Ruby200/lib/ruby/2.0.0/mkmf.rb:515:in `try_link0' from c:/Ruby200/lib/ruby/2.0.0/mkmf.rb:813:in `try_run' from extconf.rb:26:in `<main>' Gem files will remain installed in c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14 for inspection. Results logged to c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/ext/gem_make.out
mkmf.logを見ても、エラーは載っていない。
C:\Ruby200\lib\ruby\gems\2.0.0\gems\atomic-1.1.14\ext\mkmf.log
解決方法
ここに書いてある通り、
http://stackoverflow.com/questions/18777079/cant-install-atomic-ruby-atomic-gem-in-rails-4-0
atomic-1.1.14 のインストールでこけているようなので、
atomicだけ単体インストールする。
gem install atomic -V
■ログ
当然エラーになる
$ gem install atomic -V HEAD https://rubygems.org/latest_specs.4.8.gz 302 Moved Temporarily HEAD https://s3.amazonaws.com/production.s3.rubygems.org/latest_specs.4.8.gz 200 OK GET https://rubygems.org/latest_specs.4.8.gz 302 Moved Temporarily GET https://s3.amazonaws.com/production.s3.rubygems.org/latest_specs.4.8.gz 200 OK Installing gem atomic-1.1.14 Temporarily enhancing PATH to include DevKit... c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/test/test_atomic.rb
ログを見る。
c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/ext/
In file included from c:/Ruby200/include/ruby-2.0.0/ruby.h:33:0, from conftest.c:1: c:/Ruby200/include/ruby-2.0.0/ruby/ruby.h:125:14: error: size of array 'ruby_check_sizeof_voidp' is negative In file included from c:/Ruby200/include/ruby-2.0.0/ruby.h:33:0, from conftest.c:1: c:/Ruby200/include/ruby-2.0.0/ruby/ruby.h: In function 'rb_float_value':
ここが怪しい。
原因
Rubyが32ビット用、
DevKitが64ビット用だったのがエラーの原因
orz
ここを参考にDevKitを再インストール
おもっことをまったりと Devkit削除
$ ruby dk.rb install [INFO] Skipping existing gem override for 'C:/Heroku/ruby-1.9.2' [WARN] Skipping existing DevKit helper library for 'C:/Heroku/ruby-1.9.2' [INFO] Updating existing gem override for 'C:/Ruby200' [INFO] Installing 'C:/Ruby200/lib/ruby/site_ruby/devkit.rb'
よし、再インストールされた。
mkmf.log は閉じましょう
再度インストールするも、エラー。
なんでやねん。
$ gem install atomic -V --platform=ruby HEAD https://rubygems.org/latest_specs.4.8.gz 302 Moved Temporarily HEAD https://s3.amazonaws.com/production.s3.rubygems.org/latest_specs.4.8.gz 200 OK GET https://rubygems.org/latest_specs.4.8.gz 302 Moved Temporarily GET https://s3.amazonaws.com/production.s3.rubygems.org/latest_specs.4.8.gz 200 OK Installing gem atomic-1.1.14 Temporarily enhancing PATH to include DevKit... c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/test/test_atomic.rb c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/ext/extconf.rb c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/.gitignore c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/.travis.yml c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/LICENSE c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/README.md c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/Rakefile c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/atomic.gemspec c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/examples/atomic_example.rb c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/examples/bench_atomic.rb c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/examples/bench_atomic_1.rb c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/examples/graph_atomic_bench.rb c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/ext/AtomicReferenceService.java c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/ext/atomic_reference.c c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/ext/org/jruby/ext/atomic/AtomicReferenceLibrary.java c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/lib/atomic.rb c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/lib/atomic/concurrent_update_error.rb c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/lib/atomic/delegated_update.rb c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/lib/atomic/direct_update.rb c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/lib/atomic/fallback.rb c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/lib/atomic/jruby.rb c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/lib/atomic/numeric_cas_wrapper.rb c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/lib/atomic/rbx.rb c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/lib/atomic/ruby.rb Building native extensions. This could take a while... c:/Ruby200/bin/ruby.exe extconf.rb *** 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.
C:\Ruby200\lib\ruby\gems\2.0.0\gems\atomic-1.1.14\ext
を見ると、更新されるべきログファイル
mkmf.log
が更新されていない。
メモ帳で開いていたから。
もしやと思って、閉じて、再インストール。
成功しました。
orz
$ gem install atomic -V --platform=ruby HEAD https://rubygems.org/latest_specs.4.8.gz 302 Moved Temporarily HEAD https://s3.amazonaws.com/production.s3.rubygems.org/latest_specs.4.8.gz 304 Not Modified Installing gem atomic-1.1.14 Temporarily enhancing PATH to include DevKit... c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/test/test_atomic.rb c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/ext/extconf.rb c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/.gitignore c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/.travis.yml c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/LICENSE c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/README.md c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/Rakefile c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/atomic.gemspec c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/examples/atomic_example.rb c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/examples/bench_atomic.rb c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/examples/bench_atomic_1.rb c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/examples/graph_atomic_bench.rb c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/ext/AtomicReferenceService.java c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/ext/atomic_reference.c c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/ext/org/jruby/ext/atomic/AtomicReferenceLibrary.java c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/lib/atomic.rb c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/lib/atomic/concurrent_update_error.rb c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/lib/atomic/delegated_update.rb c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/lib/atomic/direct_update.rb c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/lib/atomic/fallback.rb c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/lib/atomic/jruby.rb c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/lib/atomic/numeric_cas_wrapper.rb c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/lib/atomic/rbx.rb c:/Ruby200/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/lib/atomic/ruby.rb Building native extensions. This could take a while... c:/Ruby200/bin/ruby.exe extconf.rb creating Makefile make "DESTDIR=" generating atomic_reference-i386-mingw32.def compiling atomic_reference.c linking shared-object atomic_reference.so make "DESTDIR=" install /usr/bin/install -c -m 0755 atomic_reference.so ./.gem.20131201-13740-8jc703 installing default atomic_reference libraries Successfully installed atomic-1.1.14 Parsing documentation for atomic-1.1.14 Parsing sources... unable to convert "\x90" from ASCII-8BIT to UTF-8 for lib/atomic_reference.so, skipping Installing ri documentation for atomic-1.1.14 1 gem installed
本題も解決
$ gem install rails Installing ri documentation for rails-4.0.1 14 gems installed
長かったorz