RaspberryPi3のかんたん初期設定

# raspi3をセットアップする
raspiをセットアップした時の備忘録。
やったことはこれ。

- SDカードのフォーマット・インストール
- raspi-configでモロモロの設定
- 日本語入力の設定する
- シェルを変更する(zsh)
- hostnameでsshできるようにする
- nodejsを入れる
- php5.6をいれる

# 環境
- Raspberry Pi 3
- Raspbian Jessie September 2016 2016-09-23

## SDカードのフォーマット・インストール
1. ダウンロードと解凍
はじめに任意の場所に[Raspbian](https://www.raspberrypi.org/downloads/raspbian/)を落として解凍しておく。
CLIからだけでフォーマットしようとしたら失敗したので、最初にDiskUtility.appでフォーマットしてから下記を実行する。

1. マウント先の確認
まずどこにSDカードがマウントされているか確認する。(普通はdisk2やdisk3)
```$ diskutil list```

1. Raspbianを書き込みをする
次に以下のコマンドで書き込みを行う。ddコマンドは完了するまで何も通知が出ないが、**Ctr+T**で進捗を確認できる。
```$ sudo dd if=Documents/2016-09-23-raspbian-jessie.img of=/dev/rdisk2 bs=1m```

1. SDを取り出す
完了したら取り出しをする。
```$ diskutil eject /dev/disk2```

## raspi-configでモロモロの設定
文字コードやタイムゾーンを適切に設定して環境を整える。以下のコマンドから設定画面を開く。
```$ sudo raspi-config```
こんな感じでロケールとタイムゾーンの設定にはいる

1. ロケール
**5 Internationalisation Options > I1 Change Locale**
日本語環境なら**ja_JP.UTF-8**を選択すれば問題ない。

1. タイムゾーン
**5 Internationalisation Options > I2 Change Timezone**
大阪に住んでいようが広島に住んでいようが**Asia > Tokyo**を選択する。

1. キーボード
**5 Internationalisation Options > I3 Change Keyboard Layout**
自分の環境に合わせてキーボードを選択する。

1. パスワードを変える
```$ passwd```で変えてもうまく反映されなかったのでraspi-configから変える
**2 Change User Password**
CLIからパスワードを入れる画面になるのでパスワードをいれる。

## 日本語入力の設定する
1. アップデート
はじめにアップデートをかけておく。
```$ sudo apt-get update```

1. 日本語フォントの追加
日本語フォントを入れる。
```$ sudo apt-get install ttf-kochi-gothic xfonts-intl-japanese xfonts-intl-japanese-big xfont-kaname```

1. 日本語入力システムの追加
日本語入力システムのMozcをいれる
```$ sudo apt-get install ibus-mozc```

1. 再起動
再起動して今までの設定を反映させる
```$ sudo reboot```

## シェルを変更する(zsh)
普段使っているzhsrcを反映するためにシェルを変更した。ただ単に**chsh**するのではハマるので注意。

1. /etc/pam.d/chshを編集する
```$ sudo vim /etc/pam.d/chsh```
auth required pam_shells.soをコメントにする


1. zshを入れる
まずzshを落としてきて場所を確認する

```
$ sudo apt-get install zsh
$ which zsh
/usr/bin/zsh
```

### ハマりポイント
このステップを踏まないとシェルを変更できない

**/etc/pam.d/chshを編集する**
auth required pam_shells.soをコメントにする
```$ sudo vim /etc/pam.d/chsh```

```diff:/etc/pam.d/chsh
# This will not allow a user to change their shell unless
# their current one is listed in /etc/shells. This keeps
# accounts with special shells from changing them.
-auth       required   pam_shells.so
+# auth       required   pam_shells.so
```

**chshする**
```$chsh -s /usr/bin/zsh```


## hostnameでsshできるようにする
同じネットワーク上ならホスト名でアクセスできるように設定する。
この例ではhostnameを**tarape**として設定している

1. avahiを導入する
avahiはMacのBonjourにあたるもの。これでホストネームでsshできるようになる。
```$ sudo apt-get install avahi-daemon```

1. /etc/hostnameを編集
```$ sudo vim /etc/hostname```

```diff:/etc/hostname
-raspberrypi
+tarape
```

3./etc/hostsを編集
```$ sudo vim /etc/hosts```

```diff:/etc/hosts
127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback
fe00::0         ip6-localnet
ff00::0         ip6-mcastprefix
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters
 
-127.0.1.1      raspberrypi
+127.0.1.1      tarape 
```

4.リブートする
```$ sudo reboot```

5.自分のPCからSSHして動作確認
```$ ssh pi@"tarape".local```
tarapeの部分には自分が設定したhostnameをいれる。

## nodejsを入れる

1.nodejs, npm, n packageを入れる

```
$ sudo apt-get install -y nodejs npm
$ sudo npm cache clean
$ sudo npm install n -g
```

2.n packageを使ってnodeをインストールする

```
$ sudo n stable
$ exec $SHELL
```

3.バージョンを確認して最初にいれたnode.js, npmは削除する

```
$ node -v
v7.0.0
$ sudo apt-get purge -y nodejs npm
$ sudo apt-get autoremove
```

## php5.6を入れる
いろんな記事に色々書いてあるが執筆現在('16 11/16)ではapt-getで5.6が入る。

```
$ sudo apt-get install php5
$ php -v
```


# 参考
[Raspberry Pi 3でRaspbian Jessieをセットアップする方法](http://karaage.hatenadiary.jp/entry/2016/04/03/080000)
[Raspberry Piの初期設定まとめ](https://www.out48.com/archives/895/#setup03)
[chsh: PAM authentication failed on Ubuntu 12.04](https://github.com/robbyrussell/oh-my-zsh/issues/1224)
[Raspberry Piにホスト名の設定をしたメモ](http://www.1ft-seabass.jp/memo/2015/04/21/raspberry-pi-hostname-memo/)
[Ubuntuに最新のNode.jsを難なくインストールする](http://qiita.com/seibe/items/36cef7df85fe2cefa3ea)