Debian StretchにRailsがすんなり入らないときのメモ
$ sudo apt install ruby sqlite3 $ sudo gem install rails
この後OSに死ぬほど怒られた
コマンド一発でインストールできないフレームワークって…というわけで頑張るログ。
mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h
で怒られる
事象
$ sudo gem install rails Building native extensions. This could take a while... ERROR: Error installing rails: ERROR: Failed to build gem native extension. current directory: /var/lib/gems/2.3.0/gems/nokogiri-1.8.0/ext/nokogiri /usr/bin/ruby2.3 -r ./siteconf20170814-1797-1ktxt56.rb extconf.rb mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h extconf failed, exit code 1 Gem files will remain installed in /var/lib/gems/2.3.0/gems/nokogiri-1.8.0 for inspection. Results logged to /var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/nokogiri-1.8.0/gem_make.out
確認すべきところと解決策
1. RubyとRubygemsのバージョンを確認する
Rails 5.1.3は Ruby 2.2.2、Rubygems 1.8.11以上が要求されている。
$ ruby --version ruby 2.3.3p222 (2016-11-21) [x86_64-linux-gnu] $ gem --version 2.5.2
aptから降って来るRubyが古い。。。(いつもの話
2. ruby-devを入れる。
mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h
mkmfと呼ばれるライブラリに ruby.h が含まれていないことに起因するエラー。
ruby-dev(CentOSならば ruby-devel) をインストールすると解消する。
sudo apt install ruby-dev
checking if the C compiler accepts ... *** extconf.rb failed ***
で怒られる
事象
$ sudo gem install rails Building native extensions. This could take a while... ERROR: Error installing rails: ERROR: Failed to build gem native extension. current directory: /var/lib/gems/2.3.0/gems/nokogiri-1.8.0/ext/nokogiri /usr/bin/ruby2.3 -r ./siteconf20170814-1913-1ni2g2j.rb extconf.rb checking if the C compiler accepts ... *** 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コンパイラ系のエラーっぽい。
解決策
build-essential
をインストール
調べたらそもそもmkmfがMakefileを作るやつとのことだったので、 makeやらCやらC++が一式入ってないとまともに動かないだろうと判断。
sudo apt-get install build-essential
困ったときの build-essentialで解決。
zlib is missing; necessary for building libxml2
で怒られる
事象
ERROR: Error installing rails: ERROR: Failed to build gem native extension. current directory: /var/lib/gems/2.3.0/gems/nokogiri-1.8.0/ext/nokogiri /usr/bin/ruby2.3 -r ./siteconf20170814-7887-bxemei.rb extconf.rb checking if the C compiler accepts ... yes Building nokogiri using packaged libraries. Using mini_portile version 2.2.0 checking for gzdopen() in -lz... no zlib is missing; necessary for building libxml2 *** 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.
zlibが無いらしい。
解決策
zlib1g-dev
をインストールする。
$ sudo apt install zlib1g-dev
これで解決した。
私のQiitaより転載した記事になります。