起きたこと
久しぶりにローカル環境にRuby on Rails環境を構築しようとしたところ、
bundle install
実行時にエラーが発生したので、解決までの記録を書きました。
環境:
- MacOS Big Sur 11.4
- Ruby on Rails 6.0.2
- Ruby 2.7.2
発生したエラー
mysql2のコンパイル実行時にエラーが発生した模様。
出力したログではいまいち原因がよくわからないので色々ググります。
$ bundle install
~ 省略 ~
/Users/<ユーザー名>/.rbenv/versions/2.7.2/lib/ruby/2.7.0/mkmf.rb:1050:in `block in find_library': undefined method `split' for
nil:NilClass (NoMethodError)
from /Users/<ユーザー名>/.rbenv/versions/2.7.2/lib/ruby/2.7.0/mkmf.rb:1050:in `collect'
from /Users/<ユーザー名>/.rbenv/versions/2.7.2/lib/ruby/2.7.0/mkmf.rb:1050:in `find_library'
from extconf.rb:87:in `<main>'
To see why this extension failed to compile, please check the mkmf.log which can be found here:
/Users/<ユーザー名>/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/extensions/x86_64-darwin-20/2.7.0/mysql2-0.5.3/mkmf.log
extconf failed, exit code 1
Gem files will remain installed in /Users/<ユーザー名>/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/mysql2-0.5.3 for inspection.
Results logged to
/Users/<ユーザー名>/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/extensions/x86_64-darwin-20/2.7.0/mysql2-0.5.3/gem_make.out
An error occurred while installing mysql2 (0.5.3), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.5.3' --source 'https://rubygems.org/'` succeeds before bundling.
試したこと
- エラー文で支持されているmysql2のインストールを実行
gem install mysql2:0.5.3 --source 'https://rubygems.org/'
(いつの間にかgemのバージョン指定時のコマンド構文が変わっていた。。)
→ bundle install と同じエラーが発生 - エラー文の一部をググって同じ事象が発生、解決している人がいないか探す
結果(というかオチ)
以下のスタックオーバーフローの回答内容を実行して解決しました
https://stackoverflow.com/questions/51228905/rails-error-installing-mysql2-mysql2-0-3-20
$ brew install mysql
$ gem install mysql2:0.5.3
そもそもローカル環境にMySQLをインストールしていなかったというオチ。。。
もともとDockerやVagrantなどを使って仮想環境にインストールしてやっていたので、ローカル環境にインストールしたことなかったのに気づけませんでした。
同じことになる人がいるかわかりませんが、エラー文を見るだけではパッとわからなかったので、備忘録として残します。