Mac新規インストール時の環境セットアップまとめ

新OSに切り替えるのと同時に、安全に使いたいからとクリーンインストールすることになったので備忘録として投稿。
※元は2016年に書いた記事ですが、2018年にOSのVerを限定しない記事にUpdateしました。

## 前提
コマンドラインのShellはbashでなく、fishを利用する前提で手順を書いています。また、各ツールの詳細については書いていないのであしからず。

## 基本ツール設定
開発に必須なツールを順にセットアップ。基本パッケージマネージャー経由でインストールする方向性。

###Xcode
基本の基。何を始めるにしてもまずはこれ。

```shell
$ xcode-select --install
```

###[Homebrew](http://brew.sh/)  

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

###[fish](https://fishshell.com/)
Shell。このツールのおかげで黒い画面に耐性つきました。
Installerもあるけど今回はHomebrew経由で設定。

####インストール

```shell
$ brew install fish
```

####/etc/shellsにfishのPathを追記

##### fishのPathを調べる

```shell
$ which fish 
```
##### shellの設定にfishのPathを追記

```shell
$ sudo vi /etc/shells 
```

chshした際に、chsh: /usr/local/bin/fish: non-standardとエラーが出たので/etc/shellsに追記。詳しくは以下を参考に。

* [OSXでfish shellを使う](http://qiita.com/osakanafish/items/0852327c1450123f1287)
* [FISH SHELLはじめました](http://bulblub.com/2013/05/30/starting_fish-shell/)



####ターミナル起動時にShellのデフォルトをfishに設定

```shell
$ chsh -s /usr/local/bin/fish
```

## ソフトウェアインストール・設定

### Ruby
バージョンの切り替えをできるようにするため、rbenvを使ってRubyの安定版をインストールする。

#### インストール

```shell
$ brew install rbenv ruby-build
```

#### PATHを通す

```shell
$ set -U fish_user_paths $fish_user_paths $HOME/.rbenv/bin
```

#### gemを最新版に更新

```shell
$ gem update --system
```

###[Node.js](https://nodejs.org/en/)

Node.jsはnodebrewを使って管理・インストールする。nodebrewについてはこちらの記事に詳しく書かれています。
[Nodebrewでio.jsとnode.jsのバージョン管理 - Homebrewでのインストールと基本操作](http://qiita.com/naru0504/items/b35b73258059449ec72a)

#### nodebrewインストール

```shell
$ brew install nodebrew
```

#### Node.jsをインストール（nodebrew経由）

```shell
$ curl -L git.io/nodebrew | perl - setup
$ nodebrew install latest
```

#### Node.jsのバージョン確認
```shell
$ nodebrew list
v8.4.0

current: none
```

#### 使用するNode.jsのバージョンを指定

```shell
$ nodebrew use v8.4.0
```

#### Pathを通す
bashを使ったPathの通し方の説明はあるけど、fishでのNodebrewのPathの通し方を紹介した記事はなかった。通すコマンドは以下のとおり。やってみれば至極当然で簡単なコマンド。
このパスを通す方法は基本共通です。

```
$ set -U fish_user_paths $fish_user_paths $HOME/.nodebrew/current/bin
```

公式ドキュメントにも記述ありますが、最終的にこちらの記事を参考にPath通しました、日本語感謝。
[fish-shell はじめてみた](http://tk2000ex.blogspot.jp/2013/08/fish-shell-zshbasherfish-git-fish-shell.html)

#### Node.js動作確認

```shell
$ node -v
v8.4.0
```

###[Sass](http://sass-lang.com/)

#### インストール
```shell
$ sudo gem install sass
```

### [PEAR](https://pear.php.net/)
PHP公式ライブラリ。rootlessの問題で、昔のインストール方式では弾かれる。手順は以下の通り

```shell
$  curl -O http://pear.php.net/go-pear.phar //PEARのダウンロード
$  curl -O php -d detect_unicode=0 go-pear.phar  //PEARインストーラの実行
```

実行すると対話式インストールが始まるので、basePathを変更してインストールする。

```shell

Below is a suggested file layout for your new PEAR installation. To
change individual locations, type the number in front of the 
directory.  Type 'all' to change all of them or simply press Enter to
accept these locations.

1. Installation base ($prefix)                   : /usr
~省略~
1-12, 'all' or Enter to continue: 1 //basePathを選択
(Use $prefix as a shortcut for '/usr', etc.)
Installation base ($prefix) [/usr] : /usr/local/pear // usr/local/pearに変更
```

fishにpathを通して、whichかlistで動作を確認できれば完了。

```shell
$ set -U fish_user_paths /usr/local/pear/bin $fish_user_paths
```


###[Gulp.js](http://gulpjs.com/)
鉄板のタスクランナーツール。セットアップ方法については大量に記事があるので割愛。

```shell
$ sudo npm install gulp -g
```

### [Android Studio](https://developer.android.com/studio/index.html?hl=ja)
普通にInstallerでインストール後、ターミナルでapkをinstallさせたりBuildさせるには、platform-toolsをpathに通す必要がある。
 
```shell
$ set -U fish_user_paths /Users/ユーザ名/Library/Android/sdk/platform-tools $fish_user_paths
```

### [Android SDK](https://developer.android.com/studio/index.html)
セットアップは以下

```shell
$ brew cask install android-sdk
```

環境変数をfishに登録するには以下のコマンドを実行する（この[Gist](https://gist.github.com/gbero/ac42062c9d30dbd18b21eef4cc1e4615)を参考）

```shell
$ set --export ANDROID $HOME/Library/Android;
$ set --export ANDROID_HOME $ANDROID/sdk;
$ set -gx PATH $ANDROID_HOME/tools $PATH;
$ set -gx PATH $ANDROID_HOME/tools/bin $PATH;
$ set -gx PATH $ANDROID_HOME/platform-tools $PATH;
```


### Java(JDK)
#### インストール
[ここ](http://www.oracle.com/technetwork/java/javase/downloads/index.html)からJDKのパッケージをダウンロードしてきてインストール。

#### パスを通す
JAVA_HOMEのPathをfishで通す。

```shell
$ set -x JAVA_HOME (/usr/libexec/java_home)
```

### Java(SDK)

```
$ brew cask install homebrew/cask-versions/java8
```

### Jenkins
```
$ brew install jenkins
```

### PHP

#### インストール

```shell
$ brew install php@7.1
```

#### パスを通す
```
set -U fish_user_paths $fish_user_paths /usr/local/opt/php@7.1/bin
set -U fish_user_paths $fish_user_paths /usr/local/opt/php@7.1/sbin
```


## Python
バージョンの切り替えを行いたいので、pyenvを使ったインストールで行う。

### インストール
```shell
$ brew update
$ brew install pyenv
```

### Pathを通す
```confg.fish
set -gx PYENV_ROOT "$HOME/.pyenv"
set -x PATH $PATH "$PYENV_ROOT/shims"
status --is-interactive; and . (pyenv init - | psub)
```

### pyenv設定
#### pyenv経由でpythonをインストール

```shell
$ pyenv install 3.x.x
$ pyenv install 2.7.x
```
#### pyenvでPythonを設定

```shell
$ pyenv local 2.7.x  // ローカルで反映したい場合
$ pyenv global 3.x.x // グローバルで使うversion設定
```