何回やってもherokuコマンドがNo such file or directoryを吐く

##Rails Tutorial 1.5.1 Herokuのセットアップ
ローカルに開発環境を構築したいので[Heroku公式](https://devcenter.heroku.com/articles/heroku-cli#uninstalling-the-legacy-heroku-gem)サイトに飛んでhomebrewを利用してダウンロード。
早速heroku --versionで正しくインストール出来たか確認してみる

###heroku--versionが表示されない

```
-bash: /Users/ユーザー名/.rbenv/shims/heroku: No such file or directory
```

正しくは

```
heroku --version
heroku/7.0.0 (darwin-x64) node-v8.0.0
```
上記のように表示されるはずが、当然の如くエラーが出てくる。
herokuがどこにインストールされたかを確認すると

```
which heroku
/usr/local/bin/heroku
```

想定された場所にダウンロードされていたが、heroku --versionで参照している場所が違うので、公式より
The path to the heroku command should not be a Ruby gem directory.
If it is, uninstall it and any other heroku gems:
herokuへのpathがruby gemのディレクトリにあるのはおかしいので、以下のコマンドを実行してくれとのこと

```
gem uninstall heroku --all
```

###それでもheroku --versionが表示されない

```
-bash: /Users/ユーザー名/.rbenv/shims/heroku: No such file or directory
```
公式では解決出来なかったので　[Heroku command not found](https://stackoverflow.com/questions/12795498/heroku-command-not-found/33135847)　を参考に、インストール後にpathを設定する必要があるとのことで

```
sudo ln -s /usr/local/heroku/bin/heroku /usr/bin/heroku
```

を実行すると

```
ln: /usr/bin/heroku: Operation not permitted
```
となりsudoコマンドをつけたにも関わらず拒否されたのでこちらもダメ。

###それでもheroku --versionが表示されない
ググったら以下のコマンドを試してみなさいということで実行

```
brew link --overwrite heroku
```

```
Warning: Already linked: /usr/local/Cellar/heroku/7.7.8
To relink: brew unlink heroku && brew link heroku
```

すでにlinkされてるからこちらのコマンドを試せとのこと

```
 brew unlink heroku && brew link heroku
```

試してみたところ

```
Unlinking /usr/local/Cellar/heroku/7.7.8... 2 symlinks removed
Linking /usr/local/Cellar/heroku/7.7.8... 
Error: Could not symlink bin/heroku
Target /usr/local/bin/heroku
already exists. You may want to remove it:
  rm '/usr/local/bin/heroku'

To force the link and overwrite all conflicting files:
  brew link --overwrite heroku

To list all files that would be deleted:
  brew link --overwrite --dry-run heroku
```

さらにエラーが生じたので、terminalから提案されたコマンドを再び実行

###それでもheroku --versionが表示されない

```
 rm '/usr/local/bin/heroku'
```

```
 brew link --overwrite heroku
```

二つとも実行した後で、heroku --versionを実行すると

```
-bash: /Users/ユーザー名/.rbenv/shims/heroku: No such file or directory
```

何の変更も受け付けてくれないのか！？ならもう消してしまえ！ということで
brewからherokuをuninstallし、macを再起動し、再びbrew installでherokuをインストールし直してheroku --version　を試すと

```
-bash: /Users/ユーザー名/.rbenv/shims/heroku: No such file or directory
```

###herokuを再インストールしてもheroku --versionが表示されない

```
This formula is keg-only, which means it was not symlinked into /usr/local,
because macOS provides libicucore.dylib (but nothing else).

If you need to have this software first in your PATH run:
  echo 'export PATH="/usr/local/opt/icu4c/bin:$PATH"' >> ~/.bash_profile
  echo 'export PATH="/usr/local/opt/icu4c/sbin:$PATH"' >> ~/.bash_profile

```
改めてインストールしたところ、pathの設定を変更した方が良いと、terminalの提案に従ってechoコマンドを両方とも実行。
すると・・

```
-bash: /Users/ユーザー名/.rbenv/shims/heroku: No such file or directory
```


素晴らしい・・糠に釘とはまさにこのこと。
同様のケースに陥ってる例は残念ながら探すことが出来なかったので類似ケース+公式ヘルプを参考に試してみましたが何回やってもherokuが倒せません。

###アイテム二号を使ったら無事に通過！
rubyメンターに解決案を尋ねたところ

```
sudo heroku --version
```
を試してみればどうかとのことで、早速実行すると

```
heroku/7.7.1 darwin-x64 node-v10.8.0
```

はい、無事に表示されました！ 
pathを通すコマンドがうまくいかなかった時にはsudoをつけて試す発想があったのに、これが思いつかなかったとは・・
不便ではありますがherokuコマンドの前にsudoをつけることで、全てのherokuコマンドがエラーを吐かずに正常に動作します。

参考サイト
[heroku how to add $PATH inside heroku app](https://stackoverflow.com/questions/42144981/heroku-how-to-add-path-inside-heroku-app)
[Operation Not Permitted when on root - El Capitan (rootless disabled](（https://stackoverflow.com/questions/32659348/operation-not-permitted-when-on-root-el-capitan-rootless-disabled）)
[エアーマンが倒せない](https://www.youtube.com/watch?v=2wq68LihSfw)