【2020年版mac移行】macos 10.15 Catarinaへ移行アシスタントを使わずに1から作業環境を作り上げる（CUI編）

MacBook Pro 2020を購入しました。約3年ぶりです。

PC環境はいつもキレイな状態にしておきたいものですが、最高のタイミングがPC買い替え時です。
PCを買い替えても私はいつも移行アシスタントを使っていません。
マシン環境の再確認、棚卸しができるので結果綺麗な環境を作り直すことができます。

移行作業の記事は３年前にも書いています。
[【2017年版】MacOS Sierraに新しく環境構築（主にCUI） \- Qiita](https://qiita.com/sfp_waterwalker/items/bcabd87d90dfc0767a7b)
今回も同様に記録を残します。

# 設定作業

## CUIの土台を整える

### iTerm2のインストール、設定

入手先: 公式サイト

#### インストール

Macにはターミナルという名前の標準ターミナルアプリが最初から入っていますが、iTerm2が使い勝手が非常によいのでこれをインストールします。
[iTerm2 \- macOS Terminal Replacement](https://www.iterm2.com/)

iTerm2の良さは下記でも紹介されています。
[MacのターミナルアプリはiTerm2で決まり\!\!オススメの設定と基本的な機能まとめ – Webrandum](https://webrandum.net/iterm2/)

#### 設定（必要なければスキップ）

配色をJapanesqueに設定しました。
最初から入っているテーマではないのでダウンロードしたものをインポートします。  

手順1. テーマが入っているファイルをgit cloneする。

```zsh
git clone https://github.com/aereal/dotfiles.git
```

手順2. iTerm2の環境設定 => Import）から「colors/Japanesque/Japanesque.itermcolors」を選択
手順3. 配色から「Japanesque」を選択（Preference => Profiles => Colors => Load Preset => Japanesque）
（手順2でJapanesqueが選択できるようになります。）

下記にも設定方法が記述されています。
[iTerm2でColorsにJapanesqueを設定する \- Qiita](https://qiita.com/tbpgr/items/2a31a8d529ba6c7ee5de)

次にフォントをRictyに設定しました。
読みやすさに定評のあるプログラミングフォントです。  
Rictyは別途インストールする必要があります。
下記のコマンドを実行するとインストールされます。

```zsh
brew tap sanemat/font
brew install ricty
cp -f /usr/local/opt/ricty/share/fonts/Ricty*.ttf ~/Library/Fonts/
fc-cache -vf
```

インストール方法は下記にも記載されています。
[Homebrewを使ってRictyをインストール \- Qiita](https://qiita.com/mktktmr/items/5481eac60b96c80cc262)

インストール後は、環境設定からフォントを選択します。（Preference => Profiles => Text）

### XCodeインストール

入手先: app store

- Homebrew（後述）のインストールにはCommand Line Toolsのインストールが必要。
- Command Line ToolsのインストールにはXCodeが必要。

です。

Command Line ToolsはHomebrewをインストールするときに一緒にインストールされるので、ここではXCodeをインストールします。 一度XCode起動させて、「Agree」をクリックしておきます。

### Homebrewインストール

入手先: 公式サイトを参考にコマンドラインで入手

[macOS（またはLinux）用パッケージマネージャー — Homebrew](https://brew.sh/index_ja)

```zsh
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
```

以前はCommand Line Toolsを手動でインストールする必要がありましたが、今は勝手にインストールしてくれます。

### 作業効率を上げるパッケージ群をインストール

作業の効率を上げるパッケージをインストールしていきます。

```zsh
brew install neovim
brew install zsh
brew install wget tree fzf jq nkf massren tig fasd rsync
```

Catarinaからは最初からログインシェルがzshです。
ただし、Homebrew版のzshの方が安定版のバージョンが新しかったのでインストールしました。

### Preztoインストール

Preztoはzshフレームワークです。便利なzshの設定が前もって記述されています。

インストール方法は公式に記載されています。所定のディレクトリにgit cloneしてホームディレクトリにシンボリックリンクを作成しています。

[sorin\-ionescu/prezto: The configuration framework for Zsh](https://github.com/sorin-ionescu/prezto)

```zsh
git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
```

```zsh
setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
  ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done
```

## Webサーバー構築

ローカル開発環境となるWebサーバーの構築です。

### MySQLインストール

Qiitaから流用

```zsh
CREATE USER `ユーザー名`@localhost IDENTIFIED BY 'パスワード';

GRANT ALL PRIVILEGES ON DB名.* to `ユーザー名`@localhost;
```

### SQLiteインストール

SQLiteを実案件で使うことはほとんどないですが、簡易的なツールで使うことがあります。

```zsh
brew install sqlite

```

### PHP7.4インストール

最初から入っているのはPHP7.3でした。brew searchをしてHomebrewでインストールできる最新版を調べます。

以下を参考にしました。

[/usr/local/opt/php@7\.4/bin:](https://qiita.com/tana08/items/046cba8e23d32599ee4a)

```zsh
brew search php@7
==> Formulae
php@7.2                    php@7.3                    php@7.4
```

7.4が最新なので、これをインストールします。

```zsh
brew install php@7.4
```
.zshrcにパスを通します。私はもとからPATH=〜で定義していたのでそれに付け足すようにしました。

```zsh

# ~/.zshrc

PATH=/usr/local/opt/php@7.4/bin:/usr/local/opt/php@7.4/sbin:〜:$PATH

```

php.iniを調整します。 
私は以下を調整しました。

- 文字エンコーディングをUTF-8に設定※最初からそうなっているかも
- タイムゾーン設定
- 環境変数を参照できるように設定（\$_ENV['HOME'] でホームディレクトリを参照できます。）

```zsh
default_charset = "UTF-8"
date.timezone = Asia/Tokyo
#variables_order = "GPCS"
variables_order = "EGPCS"

```

### PHP用のツールインストール

#### Composer

PHPのパッケージ管理ツール、ComposerもHomebrewでインストールします。

```zsh
brew install composer
```

### PshSH

PHPのREPL環境、PshSHをComposerでインストールします。

```zsh
composer g require psy/psysh:@stable
```


### Apacheインストール

macには最初からApacheはインストールされていますが、Homebrew版の方が使いやすいので別途インストールします。

```zsh
brew install httpd
```

設定ファイルの場所を調べます。

```zsh
apachectl -V
```

設定ファイルでは、以下を調整しています。

- mod_rewrite有効化
- Virtual Host有効化
- phpモジュールの読み込み
- 拡張子.phpでアクセスされたときにphpとして処理する

```zsh
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so # コメントアウト解除

# Virtual hosts
Include /usr/local/etc/httpd/extra/httpd-vhosts.conf # コメントアウト解除

# 以下追記
LoadModule php7_module /usr/local/opt/php/lib/httpd/modules/libphp7.so
<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>
```

### npmパッケージをインストール（グローバルのみ）

グローバルで使用するnpmパッケージのみをインストールします。  

```zsh
npm install -g yarn
```



## GUIアプリケーションを便利に使うためのコマンド

### ForkLift 3をデフォルトのファイルビューアとして開く（Finderの代わりにForkLift 3を開く）


ファイル管理ソフトとしてForkLift 3を使っています。
「Finderで開く」「Reveal in Finder」といったメニューは通常Finderが開きますが、ForkLift 3が開くように設定変更します。


```zsh
defaults write -g NSFileViewer -string com.binarynights.ForkLift-3
```

このコマンドの意味は下記に詳しく紹介されています。
[ForkLift 3をMacのデフォルトファイラに変更 \- Debug Your Life // 暮らしをデバッグする。](http://debugyourlife.hatenablog.jp/entry/2017/12/25/default-file-viewer-on-mac)