はじめに
普段Railsを使用してアプリの作成を行なっており、基本的に開発を始める際に一度行えば、繰り返し行うことは無いです。
ですが、今回ふと環境構築ってどうやってたっけな?ってなったので、その構築方法について記載します。(ターミナルにコマンドを打ち込んでいきます。)
前提条件
MacOSがCatalina以降
# zshをデフォルトに設定
$ chsh -s /bin/zsh
# ログインシェルを表示
$ echo $SHELL
# 以下のように表示されれば成功
/bin/zsh
Command Line Toolsをインストール
Command Line ToolsはWebアプリケーション開発に必要なソフトウェアをダウンロードするために必要な機能です。
以下でソフトウェアをインストールします。
$ xcode-select --install
Homebrewを用意する
Homebrewとは、macOS用のパッケージマネージャー(ソフトウェア管理ツール)で、Macのターミナルから簡単にソフトウェアをインストールできるようになります。
パッケージマネージャーとは、コンピュータに何のソフトウェアがインストールされたかを記録し、新しいソフトウェアのインストール・新しいバージョンへのソフトウェアの更新・以前インストールしたソフトウェアの削除を容易に行えるようにするプログラムです。
パッケージマネージャーの必要性
一つのソフトウェアが複数のソフトウェアを利用するため、『ソフトウェアAをアップデートしたらソフトウェアBとCが動かなくなった』という状況が発生します。これは『ソフトウェアB 5.0 にはソフトウェアA 2.0 以上が必要』といった関係があるためです。これをソフトウェアの依存関係と言います。
無数のソフトウェアの依存関係を手動で管理するのは面倒過ぎるので、パッケージマネージャーがよく使われます。パッケージマネージャーは『そのソフトウェアにどのソフトウェアのバージョン何以上が必要か』、『今インストールされているソフトウェアは何か』といった情報を持っているため、必要に応じてソフトウェアを勝手にダウンロードしてきてインストールしてくれます。
Homebrew以外だと
調べたところ、Homebrew以外にmacOSのパッケージマネージャーは以下がありました。
- Macports
- Fink
- Gentoo Prefix
Macportsとの違いについては以下の記事がありました。
パッケージ管理システム Homebrew
Homebrewをインストール
話が逸れたので、本題に戻ります。
$ cd # ホームディレクトリに移動
$ pwd # ホームディレクトリにいるかどうか確認
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" # コマンドを実行
以下のコマンドでインストールが完了しているか確認できます。
$ brew -v
Homebrewをアップデート
$ brew update
Homebrewの権限を変更
$ sudo chown -R `whoami`:admin /usr/local/bin
新しいバージョンのRubyをインストール
Webアプリケーションの開発においては専用にRubyをインストールする必要があります。
rbenv と ruby-buildをインストール
Rubyの土台となる、rbenvとruby-buildを、Homebrewを用いてインストールします。
<rbenv>
~/.rbenv/以下で、インストールした様々なRubyバージョンを管理し、状況に応じて必要になるRubyのバージョンを切り替えて提供してくれます。
わかりやすい記事がありました。
複数のバージョン管理も楽々!rbenvを利用したruby管理方法チュートリアル
<ruby-build>
rbenvのプラグインの1つです。"rbenv install"というRubyのバージョンをインストールするコマンドを提供しています。rbenvをインストールする際に、セットでインストールします。
$ brew install rbenv ruby-build
rbenvをどこからも使用できるようにする
$ echo 'eval "$(rbenv init -)"' >> ~/.zshrc
zshrcというのは、設定ファイルの名称です。
zshrcの変更を反映させる
設定ファイルであるzshrcを修正したので、以下のコマンドでzshrcを再読み込みし、変更を反映させましょう。
$ source ~/.zshrc
readlineをインストール
ターミナルのirb上で日本語入力を可能にする設定を行います。
$ brew install readline
readlineをどこからも使用できるようにする
$ brew link readline --force
rbenvを利用してRubyをインストール
Webアプリケーション開発用のRubyをインストールします。
今回は2.5.1をインストールします。
$ RUBY_CONFIGURE_OPTS="--with-readline-dir=$(brew --prefix readline)"
$ rbenv install 2.5.1
利用するRubyのバージョンを指定
インストールしたRuby 2.5.1を使用するために、以下のコマンドを実行しましょう。
$ rbenv global 2.5.1
これまで使用していた、デフォルトでPCに入っていたRubyから、先ほどインストールしたRubyを使用するように切り替えることができました。
rbenvを読み込んで変更を反映させる
Rubyのバージョンを切り替えたので、以下のコマンドでrbenvを読み込み、変更を反映させます。
$ rbenv rehash
データベース管理システムの用意
データベースは「RDBMS」と「NoSQL」という2種類のデータベースがあります。「RDBMS」は動作が遅いですがデータの関係性が担保でき正確に確実に保存できます。一方、「NoSQL」は処理が非常に高速ですが単純な構造のデータしか保存できません。
今回は「RDBMS」であるMySQLを使用します。
ちなみに「RDBMS」には他にPostgreSQLやOracleがあります。
「NoSQL」にはMongoDBなどがあります。
MySQLのインストール
$ brew install mysql@5.6
MySQLの自動起動設定
MySQLは本来であればPC再起動のたびに起動し直す必要がありますが、それは面倒であるため、自動に起動するようにしておきましょう。
$ mkdir ~/Library/LaunchAgents
$ ln -sfv /usr/local/opt/mysql\@5.6/*.plist ~/Library/LaunchAgents
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql\@5.6.plist
mysqlコマンドをどこからでも実行できるようにする
rbenvやreadlineの時と同様に、どこからでもMySQLを操作するためのコマンドmysqlを実行できるようにしましょう。
# mysqlのコマンドを実行できるようにする
$ echo 'export PATH="/usr/local/opt/mysql@5.6/bin:$PATH"' >> ~/.zshrc
$ source ~/.zshrc
# mysqlのコマンドが打てるか確認する
$ which mysql
# 以下のように表示されれば成功
/usr/local/opt/mysql@5.6/bin/mysql
mysqlの起動を確認
# mysqlの状態を確認するコマンドです
$ mysql.server status
# 以下のように表示されれば成功
SUCCESS! MySQL running
Railsを用意
bundlerをインストール
Rubyの拡張機能(gem)を管理するためのbundler(バンドラー)をインストールします。
<bundler>
gem同士の互換性を保ちながらパッケージの種類やバージョンを管理してくれる仕組みのこと。
$ gem install bundler
Railsをインストール
$ gem install rails --version='5.2.3'
rbenvを再読み込み
一通り開発に必要なものはインストールできたので、以下のコマンドでrbenvを読み込んで、変更を反映させましょう。
$ rbenv rehash
Node.jsを用意
Railsを動かすためにはnode.jsが必要となり、それをHomebrewを用いてインストールします。
$ brew install nodejs
以上でアプリ開発のための環境構築は完了です。