[wsl] mysql2のgemインストール中にエラーが起きた件について

#動作環境
win10 wsl Ubuntu

#はじめに
先日、Rubyからデータベースを参照するためにActiveRecordとmysql2のgemをインストールしていました。
まずはActiveRecordをインストール。

```
~$ gem install activerecord
```
つづいてmysql2をインストール(エラー発生)。

```
~$ gem install mysql2
```
ここでエラーが発生してしまいました。mysql2インストール失敗です。表示されたエラーがこちら。

```
~$ gem install mysql2
Building native extensions. This could take a while...
ERROR:  Error installing mysql2:
        ERROR: Failed to build gem native extension.

    current directory: /home/(ユーザ名)/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/mysql2-0.5.3/ext/mysql2
/home/(ユーザ名)/.rbenv/versions/2.7.2/bin/ruby -I /home/(ユーザ名)/.rbenv/versions/2.7.2/lib/ruby/2.7.0 -r ./siteconf20210416-4959-9f7auo.rb extconf.rb
checking for rb_absint_size()... yes
checking for rb_absint_singlebit_p()... yes
checking for rb_wait_for_single_fd()... yes
*** 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.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=/home/(ユーザ名)/.rbenv/versions/2.7.2/bin/$(RUBY_BASE_NAME)
        --with-mysql-dir
        --without-mysql-dir
        --with-mysql-include
        --without-mysql-include=${mysql-dir}/include
        --with-mysql-lib
        --without-mysql-lib=${mysql-dir}/lib
        --with-mysql-config
        --without-mysql-config
        --with-mysqlclient-dir
        --without-mysqlclient-dir
        --with-mysqlclient-include
        --without-mysqlclient-include=${mysqlclient-dir}/include
        --with-mysqlclient-lib
        --without-mysqlclient-lib=${mysqlclient-dir}/lib
        --with-mysqlclientlib
        --without-mysqlclientlib
/home/(ユーザ名)/.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 /home/(ユーザ名)/.rbenv/versions/2.7.2/lib/ruby/2.7.0/mkmf.rb:1050:in `collect'
        from /home/(ユーザ名)/.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:

  /home/(ユーザ名)/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/extensions/x86_64-linux/2.7.0/mysql2-0.5.3/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in /home/(ユーザ名)/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/mysql2-0.5.3 for inspection.
Results logged to /home/(ユーザ名)/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/extensions/x86_64-linux/2.7.0/mysql2-0.5.3/gem_make.out
```
今回はこのエラーをくぐり抜け、mysql2をインストールします。

#エラーの意味
エラーを見てみると、必要なファイルが不足しておりコンパイルに失敗したようです。エラー文に勧められたオプションから、sql関連のパッケージが無いようだと思われます。

#追加でインストール
エラー解決のために、不足していたファイルを別でインストールします。(今回は"libmysqlclient-dev"をインストール)

```
~$ sudo apt-get install libmysqlclient-dev
```
libmysqlcliect-devをインストール後、もう一度mysql2をインストールしてみます。

```
~$ gem install mysql2
```
すると、うまくインストールすることができました。無事に解決して良かった。

#別解
詳しく調べてみると、この類のエラーに関する記事はたくさんありました。いくつか見ていると、

```
~$ gem install mysql2 -(オプション)
```
のようにオプションを指定してインストールする方法もあるようです。そちらについては以下を参考にしてください。([参考\[3\]](https://tsuchikazu.net/active_record_single_use "https://tsuchikazu.net/active_record_single_use"))

#参考
>[1] [ActiveRecordを単体で使うには](https://tsuchikazu.net/active_record_single_use/ "https://tsuchikazu.net/active_record_single_use/")
[2] [road288の日記 libmysqlclient-devを入れる](https://tsuchikazu.net/active_record_single_use/ "https://tsuchikazu.net/active_record_single_use/")
[3] [Windows Subsystem for Linuxでmysqlを使えるようにする](https://tsuchikazu.net/active_record_single_use "https://tsuchikazu.net/active_record_single_use")