大田区から発信するゆるゆる日記

主にITエンジニアに関する備忘録日記。たまに趣味も。何か不備があればコメント頂けると幸いです。Twitterアカウント https://twitter.com/ryuzan03

初めてのポートフォリオ作成 #2.5

今回は「初めてのポートフォリオ作成」の番外編です。

 

過去の日記はこちら

初めてのポートフォリオ作成 #0 - 大田区から発信するゆるゆる日記

初めてのポートフォリオ作成 #1 - 大田区から発信するゆるゆる日記

初めてのポートフォリオ作成 #2 - 大田区から発信するゆるゆる日記

 

アプリをデプロイした時に出たエラー内容を備忘録として書いていきます。

目次:

環境

macOS 10.14.4

rails 5.2.3

ruby 2.6.3

mysql2 0.5.2

MySQL 8.0.16

heroku

 

エラー内容

ローカル環境でbundle installを実行したら、mysql2 gemでエラーが出ました。

bundle install実行

------エラー文------

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

------------

An error occurred while installing mysql2 (0.5.2), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.5.2' --source 'https://rubygems.org/'` succeeds before bundling.


In Gemfile:
mysql2

------エラー文------

このエラーの原因を確証が持てるまで突き詰めることはできなかったのですが、解決はできました。

解決策は後ほど記述します。

 

私が考えたエラーの原因は、最新のmysql2 gemではbuildオプションを2つ指定することができなくなったからだと考えています。

  

解決策

.bundle/config

---------修正前---------

BUNDLE_PATH: "vendor/bundle"
BUNDLE_WITHOUT: "production"

BUNDLE_BUILD__MYSQL2: "--with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include"

---------修正後---------

BUNDLE_PATH: "vendor/bundle"
BUNDLE_WITHOUT: "production"
BUNDLE_BUILD__MYSQL2: "--with-ldflags=-L/usr/local/opt/openssl/lib"

これでbundle installしたら、無事にmysql2 gemもインストールされました。

 

まとめ

このエラーは友達に解決してもらいました。

本当に助かった・・・ありがとう!

 

あと、下記の記事のようなエラーも、もしかしたら起きてたのかなと思っています。

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.が解決できない。 - Qiita

 

Xcodeは他の方の記事を参考にして既に入れていたのですが、入れていなかったら同じエラー文が出ていたのだろうと思います(実際はこのエラーは発生していません)

 

切実にエラー文と英語をスラスラと読めるようになりたいですね。

 

参考資料

bundle install 時、mysql2でエラー - Qiita

ruby on rails - rake db:migrate error with mysql2 gem - Library not loaded: libssl.1.0.0.dylib - Stack Overflow