概要
MacにはデフォルトでRubyが入っているので早速railsを入れようとsudo gem install rails
したらコケた。
概ねこの記事通りにやったら解決した。
Failed to build gem native extension.
実行すると以下のようなエラーが発生。
ERROR: Error installing rails:
ERROR: Failed to build gem native extension.
current directory: /Library/Ruby/Gems/2.3.0/gems/nokogiri-1.10.3/ext/nokogiri
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby -r ./siteconf20190625-38062-z2jdpr.rb extconf.rb
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/include/ruby.h
extconf failed, exit code 1
Gem files will remain installed in /Library/Ruby/Gems/2.3.0/gems/nokogiri-1.10.3 for inspection.
Results logged to /Library/Ruby/Gems/2.3.0/extensions/universal-darwin-18/2.3.0/nokogiri-1.10.3/gem_make.out
xcode-select --install
で治るという情報もあったが、こちらは既にインストールしてあったので、解決策にはならなそう。
MacOSのMojaveにはmacOS SDK Headerが入っていないのがエラーの原因らしいので、インストールする。
$ sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
the package path specified was invalid
実行すると以下のようなエラーが発生。
installer: Error - the package path specified was invalid:
'/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg'.
仕方ないので直接ダウンロードする。
AppleDeveloperからCommand Line Tools (macOS 10.14)for Xcode 10.2.1
を検索。ダウンロードファイルを開いてそのままインストールを進めると/Library/Developer/CommandLineTools/Packages/
にインストールされる。
AppleIDで認証する必要があるため少し面倒。
まとめ
無事sudo gem install rails
でrailsをインストールできた。
Mojave以前のソフトウェアアップデートでも同じような現象が起きたらしいので、以後のアップデートで同じ現象が起きた時用に。