Ruby
Heroku
RubyOnRails
cloud9
RubyTutorial

Cloud9でHerokuが使えない時の対処法

環境

・CLoud9

Cloud9でHerokuを使おうとしたらエラーが出た

Cloud9のターミナルで

$ heroku -v

と打つと

heroku: command not found

と帰ってきた。

ネットで調べると、似たような症状の解決策があったので実行。

以下のコマンドを順に実行した

$ sudo yum -y update
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
$ export NVM_DIR=”/home/ec2-user/.nvm”
$ [ -s “$NVM_DIR/nvm.sh” ] && \. “$NVM_DIR/nvm.sh”
$ nvm install node --reinstall-packages-from=node
$ npm install -g cli-engine-command@8.0.0
$ npm install -g heroku-cli

途中までうまくいっていたが、最後のコマンドで下記のようなエラーが出た。

npm WARN cli-engine-heroku@4.1.1 requires a peer of cli-engine-command@^8.0.0 but none was installed.

一旦無視してheroku使えるかどうか試してみた。

$ heroku -v
WARNING
WARNING Node version must be >=8.3.0 to use the Heroku CLI
WARNING
/home/ec2-user/.nvm/versions/node/v6.11.4/lib/node_modules/heroku-cli/node_modules/cli-engine/lib/cli.js:68
  async run() {
        ^^^

node.jsのバージョンを8.3.0にしろと言っている。(現状は6.11.4)
この記事を参考にnodeのアップデートを行なった。

node.jsのアップデート

バージョン確認

$ node -v
v6.11.4

8.3.0にアップデート

$ nvm install v8.3.0
Downloading https://nodejs.org/dist/v8.3.0/node-v8.3.0-linux-x64.tar.xz...
######################################################################## 100.0%
nvm is not compatible with the npm config "prefix" option: currently set to "/home/ec2-user/environment/”/home/ec2-user/.nvm”/versions/node/v8.3.0"
Run `npm config delete prefix` or `nvm use --delete-prefix v8.3.0` to unset it.

「npm config delete prefix」か「nvm use --delete-prefix v8.3.0」しろと言われる。

nvm use --delete-prefix v8.3.0する

$ nvm use --delete-prefix v8.3.0
Now using node v8.3.0 (npm v5.3.0)

nodeの8.3.0が使えるようになったみたい。

念のためバージョン確認

$ node -v
v8.3.0

よし。

そしてHerokuチャレンジ

$ heroku -v
heroku-cli/6.14.43 (linux-x64) node-v8.3.0

よっしゃ。使えるようになった!