【Mac】Railsの導入方法

# 記事概要
Ruby on Railsの開発を行うために実施する、Macの設定方法をまとめる。

# 前提
- PCはMacを使用している

# 手順1(事前準備)
事前準備として、PCの設定を変更する。

1. ターミナル.appを起動する
1. zshをデフォルトに設定するため、ターミナルで下記を実行する
    ```
    % chsh -s /bin/zsh
    ```
1. ログインシェルを表示するため、ターミナルで下記を実行する
    ```
    % echo $SHELL
    #=> /bin/zsh
    ```
    - パスワードの入力が求められた場合、PCのパスワードを入力する
    - パスワードは画面表示されないが、入力できている点に注意する
    - `/bin/zsh`と表示されない場合、ターミナル.appを終了してから再度コマンド実行する

# 手順2(Command Line Tools)
`Command Line Tools`(Webアプリケーション開発に必要なソフトウェア)をインストールする。

1. Command Line Toolsをインストールするため、ターミナルで下記を実行する
    ```
    % xcode-select --install
    ```
1. 「インストール」をクリックする
1. 「同意する」をクリックする
1. Command Line Toolsのダウンロードが開始される
1. インストールが成功すれば完了であるため、完了ボタンをクリックする

# 手順3(Homebrew)
`Homebrew`(ソフトウェア管理ツール)をインストールする。

1. 画面左上のりんごマークから「このMacについて」をクリックする
1. 表示されたMacの情報が、以下のどちらに当てはまるかを確認する
    - MシリーズのMac：「M」と表示されている　例)M1
    - IntelモデルのMac：「Intel」の文字が表示されている
1. Intelモデルの場合は、こちらの手順をスキップする(Mシリーズの場合のみ実施)
    1. finderを開く
    1. finderの虫眼鏡アイコンから「Terminal.app」または「ターミナル」と入力し、検索する
    1. `ターミナル.app`アプリのメニューを表示する
    1. メニューから「情報を見る」を選択する
    1. 「Rosettaを使用して開く」にチェックを入れて閉じる
    1. ターミナル.appをクリックし、メニューを表示する
    1. ターミナル.appを終了する
    1. ターミナル.appを再度起動する
    1. Rosettaをインストールする必要がある旨のポップアップが表示された場合、「インストール」をクリックし、ユーザー名とパスワードを入力してインストールする
1. Homebrewをインストールするため、ターミナルで下記を実行する(処理に時間がかかる可能性あり)
    ```
    # ホームディレクトリに移動
    % cd
        
    # コマンドを実行
    % /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
    ```
1. パスワードの入力が求められた場合、PCのパスワードを入力する
1. `Press RETURN to continue or any other key to abort`が表示された後、エンターキーを押下する
1. ダウンロードが完了し、再びコマンドを入力できるようになればインストール成功である
1. Homebrewがインストールされているか確認するため、ターミナルで下記を実行する
    ```
    % brew --version
    #=> Homebrew 4.0.17 (数字は異なる場合あり)
    ```
1. Homebrewをアップデートするため、ターミナルで下記を実行する
    ```
    % brew update
    ```
1. Homebrewの権限を変更するため、ターミナルで下記を実行する
    ```
    % sudo chown -R `whoami`:admin /usr/local/bin
    ```
1. 再度パスワードを入力し、コマンドが入力できるようになれば終了

# 手順4(Ruby)
`Ruby`(プログラミング言語)をインストールする。

1. Rubyの土台となる`rbenv`と`ruby-build`を、`Homebrew`を用いてインストールするため、ターミナルで下記を実行する
    ```
    % brew install rbenv ruby-build
    ```
1. PC内のどこからでも使用できるようにするため、ターミナルで下記を実行する
    ```
    % echo 'eval "$(rbenv init -)"' >> ~/.zshrc
    ```
1. zshrcの変更を反映するため、ターミナルで下記を実行する
    ```
    % source ~/.zshrc
    ```
1. ターミナル.appの`irb`上で日本語入力を可能にする設定を行うため、ターミナルで下記を実行する
    ```
    % brew install readline
    ```
1. PC内のどこからでも使用できるようにするため、ターミナルで下記を実行する
    ```
    % brew link readline --force
    ```
1. Rubyをインストールするため、ターミナルで下記を実行する
    ```
    % RUBY_CONFIGURE_OPTS="--with-readline-dir=$(brew --prefix readline)"
    % rbenv install 3.2.0
    ```
1. インストールしたRuby 3.2.0を使用するため、ターミナルで下記を実行する
    ```
    % rbenv global 3.2.0
    ```
1. rbenvを読み込み、変更を反映させるため、ターミナルで下記を実行する
    ```
    % rbenv rehash
    ```
1. Rubyのバージョンを確認するため、ターミナルで下記を実行する
    ```
    % ruby -v
    #=> ruby 3.2.0
    ```

# 手順5(MySQL)
`MySQL`(データベース)をインストールする。

1. MySQLをインストールするため、ターミナルで下記を実行する(処理に時間がかかる可能性あり)
    ```
    % brew install mysql@8.0
    ```
1. PC起動時にMySQLを自動起動させるため、ターミナルで下記を実行する
    ```
    % mkdir ~/Library/LaunchAgents 
    % ln -sfv /usr/local/opt/mysql\@8.0/*.plist ~/Library/LaunchAgents
    % launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql\@8.0.plist
    ```
1. PC内のどこからでも使用できるようにするため、ターミナルで下記を実行する
    ```
    # mysqlのコマンドを実行できるようにする設定
    % echo 'export PATH="/usr/local/opt/mysql@8.0/bin:$PATH"' >> ~/.zshrc 
    
    # 設定を読み込むコマンド
    % source ~/.zshrc 
    
    # mysqlのコマンドが打てるか確認する
    % which mysql 
    #=> /usr/local/opt/mysql@8.0/bin/mysql
    ```
1. MySQLの起動確認のため、ターミナルで下記を実行する
    ```
    # MySQLの状態を確認するコマンド
    % mysql.server status 
    #=> SUCCESS! MySQL running
    ```
    - mysql.server status実行時に`SUCCESS`できなかったら、失敗

# 手順6(shared-mime-info)
`shared-mime-info`(拡張子・ファイルの中身を見てファイルタイプを判別)をインストールする

1. shared-mime-infoをインストールするため、ターミナルで下記を実行する(処理に時間がかかる可能性あり)
    ```
    % brew install shared-mime-info
    ```
1. shared-mime-infoのインストール結果確認のため、ターミナルで下記を実行する
    ```
    % brew list|grep shared-mime-info
    #=> shared-mime-info
    ```

# 手順7(Ruby on Rails)
`Ruby on Rails(Rails)`(Rubyでアプリケーションを作成するための、フレームワーク)をインストールする

1. bundlerをインストールするため、ターミナルで下記を実行する
    ```
    % gem install bundler --version='2.4.1'
    ```
    - `Successfully installed bundler-2.4.1`と表示されると、成功
1. Railsをインストールするため、ターミナルで下記を実行する
    ```
    % gem install rails --version='7.0.0'
    ```
1. rbenvを再読み込みするため、ターミナルで下記を実行する
    ```
    % rbenv rehash
    ```
1. Railsが導入できたか確認するため、ターミナルで下記を実行する
    ```
    % rails -v
    #=> Rails 7.0.0
    ```
    - 下記注意書きは無視する
        ```
        Ignoring debug-1.7.1 because its extensions are not built. Try: gem pristine debug --version 1.7.1
        Ignoring rbs-2.8.2 because its extensions are not built. Try: gem pristine rbs --version 2.8.2
        ```

# 手順8(Sinatra)
`Sinatra`(オープンソースのフレームワーク)をインストールする

1. Sinatraをインストールするため、ターミナルで下記を実行する
    ```
    % gem install sinatra
    ```
1. 下記のように表示されると、成功
    ```
    gem install sinatra
    Fetching: rack-protection-2.1.0.gem (100%)
    Successfully installed rack-protection-2.1.0
    Fetching: ruby2_keywords-0.0.2.gem (100%)
    Successfully installed ruby2_keywords-0.0.2
    Fetching: mustermann-1.1.1.gem (100%)
    Successfully installed mustermann-1.1.1
    Fetching: sinatra-2.1.0.gem (100%)
    Successfully installed sinatra-2.1.0
    Parsing documentation for rack-protection-2.1.0
    Installing ri documentation for rack-protection-2.1.0
    Parsing documentation for ruby2_keywords-0.0.2
    Installing ri documentation for ruby2_keywords-0.0.2
    Parsing documentation for mustermann-1.1.1
    Installing ri documentation for mustermann-1.1.1
    Parsing documentation for sinatra-2.1.0
    Installing ri documentation for sinatra-2.1.0
    
    Done installing documentation for rack-protection, ruby2_keywords, mustermann, sinatra after 567 seconds
    ```
    - `Error`が表示されていないことを確認する

# 手順9(Puma)
`Puma`(サーバー)をインストールする

1. Pumaをインストールするため、ターミナルで下記を実行する
    ```
    % gem install puma
    ```
# 手順10(Sequel Ace)
`Sequel Ace`(データベースを表示するアプリケーション)をインストールする

1. Sequel Aceをインストールするため、ターミナルで下記を実行する
    ```
    % brew install --cask sequel-ace
    ```
1. [Sequel Ace](https://sequelpro.com/download#auto-start)をダウンロードする
1. ダウンロードしたdmgファイルをダブルクリックする
1. Sequel Aceをアプリケーションディレクトリにドラッグ＆ドロップする

# 備考
- 拡張子`.rb`ファイルの実行方法は、[こちら](https://qiita.com/likapantrip/items/97be91543dce3a2dc50c)を参照
- Sequel Aceアプリの使用方法は、[こちら](https://qiita.com/likapantrip/items/4c363d844847825d2dca)を参照