自己チャレンジ用にRubyOnRailsを開発した自分用メモ①

## はじめに
自己チャレンジ・勉強用にRubyOnRailsでWebアプリを作りたい！リリースしたい！
と思いたち、開発途中の自分用メモです。
勉強用のページなので、間違いなどありましたらご指摘お願いしますm(_ _)m

## 前回までの情報
[RubyOnRails環境構築した時のメモ](https://qiita.com/nekotarolu/items/5b1aff2ebf5288ed1745)

## 参考文献
[実践Ruby on Rails 4 ~現場のプロから学ぶ本格Webプログラミング](https://books.google.co.jp/books/about/%E5%AE%9F%E8%B7%B5Ruby_on_Rails_4_%E3%83%AB%E3%83%93%E3%83%BC%E3%82%AA%E3%83%B3%E3%83%AC.html?id=7UPfAwAAQBAJ&source=kp_cover&redir_esc=y)
※ただ今回、2018/07/29時点で最新のRails 5を使って実装しますので、参考文献は導入部分や基本的なところだけ利用しています. あと、[vagrant](https://www.vagrantup.com/)も使わないです.

## 実行コマンド

~~~
$ rails new XXX(Application Name) -d mysql
~~~
テキストには、`--skip-test-unit` オプションをつけるよう書かれてますが、
単体テストコードのスケルトンの自動生成を行わないオプションなのでつけてても良いと思ってます.

~~~
$ cd XXX(Application Name)/
$ bundle exec spring binstub --all
bundler: command not found: spring
Install missing gem executables with `bundle install`
~~~
と怒られるので、

~~~
$ bundle install
The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
Fetching gem metadata from https://rubygems.org/.........

extconf failed, exit code 1

Gem files will remain installed in /home/administrator/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/mysql2-0.5.2 for inspection.
Results logged to /home/administrator/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/extensions/x86_64-linux/2.5.0-static/mysql2-0.5.2/gem_make.out

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
~~~
と、まだ怒られるので、

~~~
$ gem install mysql2 -v '0.5.2' --source 'https://rubygems.org/'
Building native extensions. This could take a while...
ERROR:  Error installing mysql2:
	ERROR: Failed to build gem native extension.

    current directory: /home/administrator/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/mysql2-0.5.2/ext/mysql2
/home/administrator/.rbenv/versions/2.5.1/bin/ruby -r ./siteconf20180730-79345-13q2t6z.rb extconf.rb
checking for rb_absint_size()... yes
checking for rb_absint_singlebit_p()... yes
checking for rb_wait_for_single_fd()... yes
checking for -lmysqlclient... no
-----
mysql client is missing. You may need to 'apt-get install libmysqlclient-dev' or 'yum install mysql-devel', and try again.
-----
*** 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/administrator/.rbenv/versions/2.5.1/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-mysql-dir
	--without-mysql-dir
	--with-mysql-include
	--without-mysql-include=${mysql-dir}/include
	--with-mysql-lib
	--without-mysql-lib=${mysql-dir}/lib
	--with-mysqlclientlib
	--without-mysqlclientlib

To see why this extension failed to compile, please check the mkmf.log which can be found here:

  /home/administrator/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/extensions/x86_64-linux/2.5.0-static/mysql2-0.5.2/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in /home/administrator/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/mysql2-0.5.2 for inspection.
Results logged to /home/administrator/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/extensions/x86_64-linux/2.5.0-static/mysql2-0.5.2/gem_make.out
~~~
と、またまた怒られるので、

~~~
$ sudo yum install mysql-devel
...
インストール:
  mariadb-devel.x86_64 1:5.5.56-2.el7                                                                                                                 

完了しました!
~~~
を行ってから、

~~~
$ gem install mysql2 -v '0.5.2' --source 'https://rubygems.org/'
Building native extensions. This could take a while...
Successfully installed mysql2-0.5.2
Parsing documentation for mysql2-0.5.2
Installing ri documentation for mysql2-0.5.2
Done installing documentation for mysql2 after 0 seconds
1 gem installed

$ bundle install
The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
Fetching gem metadata from https://rubygems.org/.........
・・・
Bundle complete! 18 Gemfile dependencies, 78 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
Post-install message from sass:

Ruby Sass is deprecated and will be unmaintained as of 26 March 2019.

* If you use Sass as a command-line tool, we recommend using Dart Sass, the new
  primary implementation: https://sass-lang.com/install

* If you use Sass as a plug-in for a Ruby web framework, we recommend using the
  sassc gem: https://github.com/sass/sassc-ruby#readme

* For more details, please refer to the Sass blog:
  http://sass.logdown.com/posts/7081811

$ bundle exec spring binstub --all
* bin/rake: spring inserted
* bin/rails: spring inserted
~~~
と成功することができた。