Capistranoデプロイ時にinvalid byte sequenceエラーになる

#事象
capistranoのデプロイ時に以下のエラーになる。

```
bundle exec cap development deploy

...

Tasks: TOP => deploy:updated => bundler:install
(See full trace by running task with --trace)
The deploy has failed with an error: Exception while executing as deployer@develop: bundle exit status: 1
bundle stdout: /usr/local/rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/ui/shell.rb:99:in `[]': invalid byte sequence in US-ASCII (ArgumentError)
        from /usr/local/rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/ui/shell.rb:99:in `strip_leading_spaces'
        from /usr/local/rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/ui/shell.rb:104:in `word_wrap'
        from /usr/local/rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/ui/shell.rb:90:in `tell_me'
        from /usr/local/rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/ui/shell.rb:35:in `error'
        from /usr/local/rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/friendly_errors.rb:21:in `log_error'
        from /usr/local/rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/friendly_errors.rb:100:in `rescue in with_friendly_errors'
        from /usr/local/rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/lib/bundler/friendly_errors.rb:98:in `with_friendly_errors'
        from /usr/local/rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.12.5/exe/bundle:19:in `<top (required)>'
        from /usr/local/rbenv/versions/2.3.1/bin/bundle:23:in `load'
        from /usr/local/rbenv/versions/2.3.1/bin/bundle:23:in `<main>'
bundle stderr: Nothing written
```

#原因
Macローカルのlocale設定 `LC_CTYPE="UTF-8"` がssh時にサーバ側に転送され、サーバ側では `UTF-8` というロケールが存在しないため。

```
#ローカル
/Users/yamy% locale
LANG="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_CTYPE="UTF-8"

#開発機
[yamy@develop ~]$ locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: LC_ALL??????????????????: ??????????????????????
LANG=ja_JP.UTF-8
LC_CTYPE=UTF-8 <= これが原因

[deployer@develop ~]$ locale
LANG=ja_JP.UTF-8
LC_CTYPE="ja_JP.UTF-8"
```

#対処方法
2種類ある。

- サーバ側の `LC_CTYPE` を修正して、かつローカルから送らないようにする
- ローカルから正しい値を送るようにする

前者はサーバーの再起動が必要になりそうだったため、後者を選択した。

手元の `.bashrc` などで `LC_CTYPE` を追加する。
screen などを使用している場合は再起動させる。

```/.zshrc
# users generic .zshrc file for zsh(1)

## Environment variable configuration
#
# LANG
#
export LANG=ja_JP.UTF-8
export LC_CTYPE=ja_JP.UTF-8 <= これを追加
export LESSCHARSET=utf-8
```


#ローカルのlocaleがサーバ側で設定される理由
参考元を引用します。

>- Mac の Terminal.app の Settings > Advanced > Set locale environment variables on startup がオンになっていると、 Mac 側で LC_CTYPE=UTF-8 が設定される
- Mac の /etc/ssh_config で SendEnv LANG LC_* になっているので、 LC_CTYPE が ssh サーバに送信される
- サーバーの /etc/ssh/sshd_config で AcceptEnv LANG LC_* になっているので、 Mac からの LC_CTYPE がサーバーに渡される
- UTF-8 というロケールはない (正しくは en_US.UTF-8 とか ja_JP.UTF-8) ので怒られる

#ひとこと
以前は普通にデプロイ出来ていたので、MacのSoftware Updateなどのタイミングでふいに書き換わってしまうのかなと思った。

#参考
- [Capistranoデプロイ時にwheneverのタスクでinvalid byte sequenceのエラー](http://totutotu.hatenablog.com/entry/2016/04/26/145503)
- [MacからSSHしてロケールのエラーが出た時の対処](http://qiita.com/bump_of_kiharu/items/86ceb65e09049959bc90)