Mac 環境設定 2021春(Apple Silicon対応版)

会社で新しいMacを買ってもらったので設定をメモ。
筆者はフロントエンドエンジニアで主にJS/HTML/CSS/PHPなんかを触ってWebサイト/サービスの開発してるような感じです。どなたかの参考になればー

(追記1) macOS Catalina出たのちょっと修正
(追記2) M1 Macbook Airで設定したので追記。M1対応はNative、Rosetta2に拘らずシンプルに導入するのを最優先。


# 環境
- Intel Mac： MacBook Pro (macOS Catalina 10.15.5)
- M1 Mac： MacBook Air (macOS Big Sur 11.2.3 )

## シェルをzshへ変更
### Intel Mac
bashのままだと `The default interactive shell is now zsh. To update your account to use zsh, please run chsh -s /bin/zsh` で警告が出るのでzshへ移行する。(警告を消してそのままbash使うことも出来る)

zshにデフォルトシェルを変更

```
$ chsh -s /bin/zsh
```

bashの設定ファイルがある場合は設定ファイルをコピーする

```
$ cat ~/.bash_profile >> ~/.zprofile
$ cat ~/.bashrc >> ~/.zshrc
$ source ~/.zprofile
$ source ~/.zshrc
```

### M1 Mac
macOS Big Surでは標準でzshなので特に対応なし

zshのカスタマイズは底が深いのでとりあえず保管機能強化のライブラリくらいは入れておきましょう。

```
$ brew install zsh-completions
```

あとはご自由に。

## Homebrew
まずはHomebrewをインストール。Xcode Command-Line Toolも一緒にダウンロードされる。

```
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
```

チェック&アップデート

```
$ brew doctor
$ brew update
```

## Git
まずは確認

```
$ git -v
```

入って無ければ

```
xcode-select --install
```

最低限設定しておく。

```
$ git config --global user.name "{ユーザー名}"
$ git config --global user.email "{メールアドレス}"
$ git config --global core.quotepath false
```

## nodebrew
Node.jsはバージョンを切り替えたいのでまずはnodebrewを入れる。

```
$ brew install nodebrew
```

nodeコマンドを使うために環境パスを通しておきます。

```
echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.zprofile
```

## Node.js
nodebrewからNode.jsを入れたい。
まずは導入可能なバージョンを確認。

```
$ nodebrew ls-remote
```

### Intel Mac
一覧が出てくるのそこからv14.16.0を入れる。

```
$ nodebrew install-binary v14.16.0
```
インストールされたか確認する。

```
$ nodebrew list
v14.16.0

current: none
```
currentが現在セットされてるバージョンで、noneになってるのでセットする。

```
$ nodebrew use v14.16.0
```

nodeがちゃんと入ったか確認。

```
$ node -v
v14.16.0
```

### M1 Mac

M1対応のNodeはv15以降なので、`nodebrew install-binary v15.12.0`をしたいところだが、`Error: Darwin arm64 is not supported. at /opt/homebrew/bin/nodebrew line 743.`と怒られる。

ARM版は自分でコンパイルする必要があるので、まずはソースのDLディレクトリを作成

```
mkdir ~/.nodebrew/src
```

続いてコンパイル (めちゃくちゃ時間がかかる)

```
nodebrew compile v15.12.0
```

終わったらインストールされたか確認する。

```
$ nodebrew list
v15.12.0

current: none
```
currentが現在セットされてるバージョンで、noneになってるのでセットする。

```
$ nodebrew use v15.12.0
```

nodeがちゃんと入ったか確認。

```
$ node -v
v15.12.0
```

## yarn
入れておこう

```
npm install -g yarn
```

## 秘密鍵
SSHやSFTPで使う公開鍵を置く。
.sshディレクトリを作ってそこに鍵をコピー。
ついでにconfigも置いておく。

```
$ mkdir -m 700 ~/.ssh
$ touch ~/.ssh/config
```

鍵ファイルを配置したら念の為パーミッション変更

```
$ chmod 600 ~/.ssh/***.pem
```

#### ※Windows環境からppkを持ってくる場合は下記手順で変換する

puttyのインストール

```
$　brew install putty
```

変換する

```
$　puttygen ***.ppk -O private-openssh -o ***.pem
```

## アプリのインストール
- Adobe CC
- Google Chrome
- Firefox
- Microsoft Office
- Visual Studio Code(もしくはJetBrainsなど)
- CotEditor
- Slack
- FileZilla(もしくはTransmitやCyberduckなど)
- VirtualBox
- Vagrant
- Docker (もしくはDocker Desktop)
- iTerm 2(もしくはHyperなど)
- ZIPANG

## その他ツール
### セキュリティソフト
会社指定のセキュリティソフトがM1対応していないので、対応するまではM1対応済みコンシューマー向けセキュリティソフトの月額版を導入。

### 社内VPN設定
L2TP/IPsecで設定。うちの場合は `すべてのトラフィックをVPN接続経由で送信`にチェック入れる。
https://www.seil.jp/doc/index.html#fn/pppac/use/pppac-client/macosx_l2tp.html

### 社外VPN設定
クライアントのサービスに接続するVPN。CISCO製クライアント。M1でも問題なく設定可能。

## その他やっておくと良い設定
- Siriを無効にする
- Finderにフルパスを追加

```
$ defaults write com.apple.finder _FXShowPosixPathInTitle -boolean true
$ killall Finder
```

## おわり
これくらいでだいたい設定終わった。
今日も頑張るぞい。