【Rails6】macOS Catalinaでそもそもbundle installがコケる。
こんにちは、マリンです。
今回はRails6です。いずれはあげなきゃいかんから...
と思い今回勉強がてら一つアプリを作ってみよう!
ってはじめたところ、まず最初のbundle install
でコケたので書きます。
ちなみに今回の原因はmacOS Catalinaのようでした。
(Railsは6なのにOSは上げんのかい!って言わないで...)
環境
状況
最初に書きましたが、勉強用にRails6でアプリを作ろうとしたところ、
$ budle init $ bundle install
ここでまずコケましたという状況です。
エラー
Gem::Ext::BuildError: ERROR: Failed to build gem native extension. current directory: /Users/username/Study/Rails/vendor/bundle/ruby/2.6.0/gems/racc-1.5.2/ext/racc/cparse /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby -I /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0 -r ./siteconf20210115-42245-hi0x1e.rb extconf.rb checking for rb_ary_subseq()... *** 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. . . . To see why this extension failed to compile, please check the mkmf.log which can be found here: /Users/username/Study/Rails/vendor/bundle/ruby/2.6.0/extensions/universal-darwin-19/2.6.0/racc-1.5.2/mkmf.log extconf failed, exit code 1 Gem files will remain installed in /Users/username/Study/Rails/vendor/bundle/ruby/2.6.0/gems/racc-1.5.2 for inspection. Results logged to /Users/username/Study/Rails/vendor/bundle/ruby/2.6.0/extensions/universal-darwin-19/2.6.0/racc-1.5.2/gem_make.out An error occurred while installing racc (1.5.2), and Bundler cannot continue. Make sure that `gem install racc -v '1.5.2' --source 'https://rubygems.org/'` succeeds before bundling.
まずは素直にgem install racc -v '1.5.2' --source 'https://rubygems.org/'
をやりました。
下の方に書いてあったので。
インストールはできましたので再びbundle install
したところ、
全く同じエラーが出てPCぶん投げようかと思いました。
解決方法
ログ見るの大事です!
タイムリーに昨日youtubeで「ググる前にエラーとかログ見ろよ!!」って怒られまして。
(でもここまでに無駄なググりを小一時間続けてましたが。。。)
で、お恥ずかしながら初めてログを見ました。
ログを見る
先ほどのエラーで言うと真ん中らへんのこの部分です。
To see why this extension failed to compile, please check the mkmf.log which can be found here: /Users/username/Study/Rails/vendor/bundle/ruby/2.6.0/extensions/universal-darwin-19/2.6.0/racc-1.5.2/mkmf.log
ここでもなんと「ログ見ろよ!!」って怒られてるんですね ^ ^;)
よくみると度々怒られてます。
ということで見てみます。
$view /Users/username/Study/Rails/vendor/bundle/ruby/2.6.0/extensions/universal-darwin-19/2.6.0/racc-1.5.2/mkmf.log In file included from /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0/ruby.h:33: /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0/ruby/ruby.h:24:10: fatal error: 'ruby/config.h' file not found #include "ruby/config.h"
すみません、中身はメモり忘れてググった時に出てきたやつお借りしてます。
でも重要なfatal error: 'ruby/config.h' file not found
が同じなので許して!
つまるところ、ruby/config.hファイルというのがないのがいけないそうですね。
ここでmacOS Catalinaさんの出番です。
もともとMojaveの時に起こっていたエラーのようですが、
Catalinaさんでも起こってしまうようです。
ruby - macOS Mojave 'ruby / config.h'ファイルが見つかりません
こちらではまずXcodeをインストールし直している様です。
fatal error: 'ruby/config.h' file not found エラーの対応 - Qiita
また、こちらの記事でもCommand line Toolsを入れるとあり、
もしかしてXcodeのバージョンか?と思い確認してみました。
しかしXcodeのバージョンは最新になっていたので違うかな?
と思い、最初の記事の推奨回答にあるやつを試しました。
$ echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile $ source ~/.bash_profile
きちんと適用させて(よく忘れるので)、、、いざ!!
$ bundle install Fetching gem metadata from https://rubygems.org/............. Fetching gem metadata from https://rubygems.org/. Resolving dependencies... Using rake 13.0.3 Using concurrent-ruby 1.1.7 Using i18n 1.8.7 Using minitest 5.14.3 Using tzinfo 2.0.4 Using zeitwerk 2.4.2 Using activesupport 6.1.1 Using builder 3.2.4 . . . Fetching sprockets-rails 3.2.2 Installing sprockets-rails 3.2.2 Fetching rails 6.1.1 Installing rails 6.1.1 Bundle complete! 1 Gemfile dependency, 43 gems now installed. Bundled gems are installed into `./vendor/bundle`
からの!!
$ rails new AppName -d mysql create create README.md create Rakefile create .ruby-version create config.ru create .gitignore create Gemfile run git init from "." Initialized empty Git repository in /Users/marin/Study/Rails/Zukan/.git/ create package.json create app . . . remove config/initializers/new_framework_defaults_5_2.rb run bundle install . . . Using turbolinks-source 5.2.0 Using turbolinks 5.2.1 Using uglifier 4.2.0 Using web-console 3.7.0 Bundle complete! 18 Gemfile dependencies, 79 gems now installed.
ぬぁ〜〜〜!
いつもはコケるMySQLまでスルスルいったーーー!
以上です。
まとめ
今回のことで、本当にエラーやログをしっかり確認することの大切さを学びました。
今まではなんとなく「英語だしな〜」「見てもどうせわかんないしな〜」
と言い訳して避けていましたが、
「翻訳あるんだから英語苦手は言い訳にならん!!」
とこれまたyoutubeの先生に怒られまして。。。(昨日)
でも実際見てみたところ、
内容は的確で、かつ思っていた様な難解な書き方ではなく
「ここか!!」
とすぐわかるようになっていました。本当親切!
エラーなんとなく読んだつもりで
見当違いのとこググるのは本当に時間の無駄!
今回大変勉強になりました。
皆さん、ログ見ましょう!!
今回参考にさせて頂いた記事はこちらです。
ありがとうございました!