iMacでHerokuにCLIログインしてみる


### 目標
macOSにHeroku CLIをインストールしてログインする

Linux初心者です。諸般の事情によりMacを使う事になったのでいろいろやってみます。
今回はHerokuというものにMacからターミナルからアクセスします。
  
いや、Herokuってなにかなー　なんかWebアプリを簡単にデプロイできて、公開もできて、にしては安いって事を聞いて、いろいろ見て回って無料アカウントも作ってみたんです  
で、この[ページ](https://dashboard.heroku.com/apps) (ログインしないと見れません)で、おっ、Node.jsのアプリも行けるんだぁ　と、Node.jsのアイコンをクリックしたらチュートリアルっぽい画面になって、「うし、やってみるか」って事で"I'm ready to start"ボタンを押した以降が↓です。

### 参考にさせていただいたページ
[Herokuってなんなの？](https://qiita.com/okasir4444/items/b9b1e70fdbbbd5794f1b) 
[Heroku初心者がHello, Herokuをしてみる](https://qiita.com/Arashi/items/b2f2e01259238235e187)
[HomeBrewでgitを入れる（エラーから解消まで](https://himariweb.com/program/homebrew-install-git/)
[macでheroku deploy](https://qiita.com/tetsu-sh/items/f6fcbb6b85df04e5cf3f) 
[Herokuを使いこなすのに必要な術](https://qiita.com/fuwamaki/items/f7752eb7a2727660239f) 
[herokuで本番環境までを構築する上で知っておきたいこと](https://qiita.com/undrthemt/items/1f49cc2bc9aabeb35a4c)

### 準備
- macOS Mojava v10.14.6
- Homebrew v2.1.11   
- [Heroku](https://jp.heroku.com/)(webページで)アカウント作成済み

### Heroku Command Line Interface (CLI)のインストール
どうもHerokuをいろいろするのには、Web画面からもできるらしいけれど、ローカルPCにコマンド・ライン・ツール(CLI)をインストールするといいらしい。 
なのでインストールします。  

- インストーラーも提供されているようだけど、とうせならという事でHomebrewでインストールする
- Homebrew用コマンドもちゃんと書いてくれている事ので、それで  

```
$ brew install heroku/brew/heroku
```  

- heroku/brew というリボジトリにある heroku をインストールしろ　って事ですね
- いあいあ、私のHomebrewに heroku/brew はTapされてないし
  
```
$ brew tap
caskroom/cask
homebrew/cask
homebrew/core
``` 

- という事でせっかくなのでTapから行きます

```
$ brew tap heroku/brew
・・・
・・・
==> Tapping heroku/brew
Cloning into '/usr/local/Homebrew/Library/Taps/heroku/homebrew-brew'...
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 10 (delta 0), reused 7 (delta 0), pack-reused 0
Unpacking objects: 100% (10/10), done.
Tapped 2 formulae (38 files, 28.6KB).
```

- そして Heroku のインストール

```
$ brew install heroku
==> Installing heroku from heroku/brew
Error: Xcode alone is not sufficient on Mojave.
Install the Command Line Tools:
  xcode-select --install
  ```

- このMacにxcode-select 入ってなかった・・・
- なので指示どおりにインストール

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

- 再度、Heroku のインストール

```
$ brew install heroku
・・・
・・・
Error: An exception occurred within a child process:
  Errno::EPERM: Operation not permitted @ dir_s_mkdir - /usr/local/Cellar
```

- エラーです・・・。　/usr/local/Cellar というディレクトリが権限無くてつくれないみたい
- `sudo`で実行してみます

```
$ sudo brew install heroku
Password:
Error: Running Homebrew as root is extremely dangerous and no longer supported.
As Homebrew does not drop privileges on installation you would be giving all
build scripts full access to your system.
```

- なんか怒られました
- Homebrew 自体を調べます

```
 $ brew doctor
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry or file an issue; just ignore this. Thanks!

Warning: The following directories do not exist:
/usr/local/include
/usr/local/lib
/usr/local/opt
/usr/local/sbin
/usr/local/Cellar

You should create these directories and change their ownership to your account.
  sudo mkdir -p /usr/local/include /usr/local/lib /usr/local/opt /usr/local/sbin /usr/local/Cellar
  sudo chown -R $(whoami) /usr/local/include /usr/local/lib /usr/local/opt /usr/local/sbin /usr/local/Cellar
Dice-no-iMac:~ dice$ 
```

- ディレクトリが無いから作れって事ですね。ありがたい事にコマンドまで案内してくれてます。
- 「whoami」は自分のユーザー名を表示するコマンド、「groups」は自分が所属するグループの名前を表示するコマンドだそうです([【 whoami 】コマンド／【 groups 】コマンド](https://www.atmarkit.co.jp/ait/articles/1611/30/news016.html) )
- 「chown」はファイルの所有者やグループを変更するコマンドみたいです( [chownコマンド](https://webkaru.net/linux/chown-command/))
- あとパーミッションについて([LH質問箱：ファイルを守るために｢パーミッション｣について教えて！](https://www.lifehacker.jp/2012/12/lh.html))
- ちなみに、実行時にMacへのログインパスワード聞かれました
- 4回目のインストールです

```
$ brew install heroku
・・・
・・・
==> Summary
🍺  /usr/local/Cellar/heroku/7.33.0: 18,675 files, 49.4MB, built in 46 seconds
==> `brew cleanup` has not been run in 30 days, running now...
==> Caveats
==> heroku
To use the Heroku CLI's autocomplete --
  Via homebrew's shell completion:
    1) Follow homebrew's install instructions https://docs.brew.sh/Shell-Completion
        NOTE: For zsh, as the instructions mention, be sure compinit is autoloaded
              and called, either explicitly or via a framework like oh-my-zsh.
    2) Then run
      $ heroku autocomplete --refresh-cache

  OR

  Use our standalone setup:
    1) Run and follow the install steps:
      $ heroku autocomplete

Bash completion has been installed to:
  /usr/local/etc/bash_completion.d

zsh completions have been installed to:
  /usr/local/share/zsh/site-functions
```

- インストール成功です
- なんか`brew cleanup`しろとアドバイスしてくれてます。
- 指示にしたがってコマンドを実行します

```
$ heroku autocomplete --refresh-cache
Building the autocomplete cache... ?
heroku: Press any key to open up the browser to login or q to exit: Building the
```

- とりあえず`Enter`キー押すと、Webブラウザが立ち上がって"Log in to the Heroku CLI"画面が表示されます
- ログインするとターミナルの方に伝わって `done` となります

```
Opening browser to https://cli-auth.heroku.com/auth/browser/df07f955-xxxxx-xxxx-xxxxx-xxxxxxxxxx
heroku: Waiting for login... done
```

- のタイミングでPCいきなり無言でダウン・・・画面真っ暗ですorz
- 電源入れて、いざログイン

```
$ heroku login
heroku: Press any key to open up the browser to login or q to exit: 
Opening browser to https://cli-auth.heroku.com/auth/browser/206ec5fc-xxxx-xxxx-xxxx-xxxxxxxxxxx
Logging in... done
Logged in as <<登録したメールアドレス>>
```

- ログイン成功
- ちゃんとログインログインできてるのかわかりずらい
- とりあえず確認

```
$ heroku --version
heroku/7.33.0 darwin-x64 node-v11.14.0
```

- ローカルのnodeとはバージョンが違うからHerokuの中にいるのかしらん

```
$ heroku apps
You have no apps.
```

- うん、一応繋がってるみたい
- では、ログアウト

```
$ heroku logout
Logging out... done
```

- お疲れ様でした

### おわりに
いきおいでやり始めたので、ログインできた時点で力尽きました
やはり、コマンドラインだけの世界にはまだ慣れないです

Windowsユーザーのみなさんの参考になればと思います。