[メモ] 新しい MBP に入れたもの

2020年6月11日、もろもろ更新しました

# コマンドライン環境

## ターミナル起動時に .bashrc を読み込めるようにしておく

```
$ cat << EOF > ~/.bash_profile
if [ -f ~/.bashrc ] ; then
. ~/.bashrc
fi
EOF
```

## homebrew
とりあえず、これ入れないと何もできない。

次に [Homebrew](https://brew.sh/index_ja.html "Homebrew") を入れる。
ターミナルから

```
$ xcode-select --install
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
$ brew update && brew upgrade && brew cleanup
$ brew doctor
$ brew tap homebrew/cask-versions
$ brew --version
```

## aws-cli

Homebrew 入れたら aws-cli 入れよう。

```
$ brew install awscli
$ aws --version
$ aws configure
```

## Terraform

[Terraform](https://www.terraform.io "Terraform") もあったほうが色々とやりやすいよね。

Homebrew で tfenv 入れて、バージョン切り替えできるようにしておこう

```
$ brew install tfenv
$ tfenv list-remote
$ tfenv install 0.11.15-oci
$ tfenv use 0.11.15-oci
$ terraform --version
```

## direnv

ついでに [direnv](https://github.com/direnv/direnv "direnv") も入れておくと、AWS アカウントを切り替えて開発するときに便利だよね。

```
$ brew install direnv
$ echo 'eval "$(direnv hook bash)"' >> ~/.bashrc
$ export EDITOR=vim >> ~/.bashrc
$ source ~/.bashrc
```

設定はこんな感じ

```
$ cd path/to/workdir
$ direnv edit
direnv: error .envrc is blocked. Run `direnv allow` to approve its content.
$ direnv allow
direnv: loading .envrc
direnv: export +AWS_ACCESS_KEY_ID +AWS_SECRET_ACCESS_KEY
```

direnv edit で AWS シークレットキーとか設定するにはこう

```
export AWS_ACCESS_KEY_ID="XXXXXXXXXXXXXXXXXXXX"
export AWS_SECRET_ACCESS_KEY="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
```

git 管理している場合は `.gitignore` に `.envrc` を追加しておいてお漏らししないように注意しましょう。

## node.js

AWS Lambda の node.js は ver.12.x, Lambda@Edge は ver.10.x なので、色々なバージョンの node.js が選択できるようにしておいたほうがいいよね。

```
$ brew install nodebrew
$ nodebrew -v
nodebrew 0.9.7
 :
$ mkdir -p ~/.nodebrew/src
$ nodebrew ls-remote
 :
nodebrew install-binary latest
nodebrew install-binary v10.21.0
nodebrew install-binary v12.18.0
nodebrew use v10.21.0
echo 'export PATH=$PATH:$HOME/.nodebrew/current/bin' >> ~/.bashrc
source ~/.bashrc
node --version
npm install -g npm
npm install -g aws-sdk
```

## Serverless Framework

[Serverless Framework](https://serverless.com) も入れておこっか

```
$ npm install -g serverless
$ sls -v
```

## Python

pyenv 入れて、バージョン選択できるようにしておこう

```
$ brew install readline xz
$ sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
$ brew install pyenv
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile
$ rm -rf ~/.pyenv/versions/＊
$ CONFIGURE_OPTS="--with-openssl=$(brew --prefix openssl)" pyenv install 2.7.18
$ CONFIGURE_OPTS="--with-openssl=$(brew --prefix openssl)" pyenv install 3.8.3
$ pyenv global 2.7.18
$ pyenv versions
$ python --version
```

## Ruby

rbenv 入れて、バージョン選択できるようにしておこう

```
$ brew install rbenv ruby-build
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile
$ rbenv install -l
$ rbenv install 2.6.6
$ rbenv global 2.6.6
$ rbenv rehash
$ ruby --version
```

## PHP

HomeBrew で phpenv 入れるとバージョン切り替えできるみたいだけどうまく行かず...
とりあえず composer と wp-cli だけ

```
$ brew install composer
$ brew install wp-cli
```

# GUI 環境

## Chrome, Firefox

Chrome, Firefox も Homebrew の cask install でインストールできます。

```
$ brew install --cask firefox
$ brew install --cask google-chrome
```

## Slack

Slack クライアントも Homebrew の cask install でインストールできます。

```
$ brew install --cask slack
```

## Karabiner-Elements

USキーボードで日本語切り替えが面倒っすよね。
[Karabiner-Elements](https://github.com/tekezo/Karabiner-Elements "Karabiner-Elements") 入れると左右の command キーに割り当てることができたりするので便利です。

[Karabiner-Elements のダウンロード](https://pqrs.org/osx/karabiner/index.html)
[Karabiner-Elements が超絶怒濤に進化している。今も!](https://qiita.com/hanamiche/items/d6b9a7397a91caaa017d)

```
$ brew install --cask karabiner-elements
```

設定はこんな感じ
<img width="908" alt="スクリーンショット 2017-11-02 15.25.14.png" src="https://qiita-image-store.s3.amazonaws.com/0/25964/16b941a5-b752-3cc7-3b48-9c3e03b8cbfd.png">

## Visual Studio Code

好きです、vscode。 [Visual Studio Code](https://www.microsoft.com/ja-jp/dev/products/code-vs.aspx)

```
$ brew install --cask visual-studio-code
```

入れたら Shell から動かせるように設定しておきましょう。
vscode 起動して、`shift + command + P` でコマンドパレット起動したら `Shell` 検索してコマンドラインからも呼び出せるようにしておきましょう。
<img width="623" alt="スクリーンショット 2017-11-02 15.29.14.png" src="https://qiita-image-store.s3.amazonaws.com/0/25964/f7d5e319-0246-eeb8-ffd2-4e2041be123a.png">

## Tunnelblick

OpenVPN サーバへの接続用に [Tunnelblick](https://tunnelblick.net "Tunnelblick") 使ってます。

```
$ brew install --cask tunnelblick
```

## Dropbox

[Dropbox](https://www.dropbox.com) でファイル管理してるので入れておきます。
[Dropbox のダウンロード](https://www.dropbox.com/install)

```
$ brew cask install dropbox
```

## Ricty Font

ターミナルで使うフォントは、やはり Ricty がみやすい。
Homebrew でインストールできます。

```
$ brew tap homebrew/cask-fonts
$ brew info --cask font-ricty-diminished
$ brew install --cask font-ricty-diminished
```

## Rambox

Slack とか Typetalk とか Gmail とかは [Rambox](http://rambox.pro "Rambox") で管理してます。

```
brew install --cask rambox
```

## Biscuit

実は Rambox から [Biscuit](https://eatbiscuit.com/ja "Biscuit") に乗り換えました。

```
brew install --cask biscuit
```

# homebrew でインストールしていたアプリを他の Mac に移行するには？

## BrewFile を作成する

移行元の Mac で、以下のコマンドを実行して `BrewFile` を作成する

```
$ brew bundle dump
```

```Text:Brewfile例
cask_args appdir: "/Applications"

tap "homebrew/bundle"
tap "homebrew/cask"
tap "homebrew/cask-fonts"
tap "homebrew/cask-versions"
tap "homebrew/core"

tap "rcmdnk/file"
brew "rcmdnk/file/brew-file"

brew "ansible"
brew "awscli"
brew "csshx"
brew "direnv"
brew "docker"
brew "git"
brew "jq"
brew "mas"
brew "tfenv"

cask "appcleaner"
cask "biscuit"
cask "deepl"
cask "docker"
cask "dropbox"
cask "font-ricty-diminished"
cask "the-unarchiver"
cask "vlc"
cask "firefox"
cask "google-chrome"
cask "slack"
cask "karabiner-elements"
cask "visual-studio-code"
cask "tunnelblick"

mas "Kindle", id: 405399194
```

俺の Brewfile

https://gist.github.com/wokamoto/1d1bb72dc26be9da30b013f7ef00859e

## 移行先の Mac で brew bundle する

上で作った BrewFile を移行先の Mac にコピーして `brew bundle`

```
$ brew bundle
```