bundle install でmysql2インストール時にエラーになる
起きたこと
久しぶりにローカル環境に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などを使って仮想環境にインストールしてやっていたので、ローカル環境にインストールしたことなかったのに気づけませんでした。
同じことになる人がいるかわかりませんが、エラー文を見るだけではパッとわからなかったので、備忘録として残します。
Author And Source
この問題について(bundle install でmysql2インストール時にエラーになる), 我々は、より多くの情報をここで見つけました https://qiita.com/tomsyoya/items/28f938747bcd6889cc9e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .