0
1

More than 3 years have passed since last update.

VagrantにHerokuを入れる際に起きたエラーと解決方法と参考記事

Posted at

はじめに

ドットインストールで構築したローカル環境でアプリを開発し、公開するため、いざherokuを入れようとしたらエラーが起きまくりました。
【初心者向け】railsアプリをherokuを使って確実にデプロイする方法【決定版】
この記事を参考にしていました。
しかし、herokuを入れる際に、この記事の開発環境が全く違うため、その先に進めずエラーと戦うことになりました。

パスがない問題

エラー解決に必死だったため、エラーのコピーは取っていませんが、このようなエラーがでたと思います。

↓エラーの最後の文
Your path is missing /usr/local/bin, you need to add this to use this installer.

/usr/local/binのパスが無いと言われているため、パスを作る必要があるみたいです。

パスの確認

$ echo $PATH

パスを確認してみますが/usr/local/bin:はあっても/usr/local/binがないと駄目みたいです。

解決方法の前に、解決する中で知った知識

sudoとは、僕の解釈では権限の高いコマンド。
$#で違いもあり、#のほうが権限が高い。($の方で実行できないことが#で実行できたから)

解決方法:偉い権限を使ったり、viエディタで書き換えたりする。

パスの設定に必要な.bash_profileの設定とsudoの設定は以下を参考にしました。
仮想環境構築後に設定しておきたいこと -メモ-

sudoの設定はこちらの方が親切です。
CentOS で sudo 時に実行ユーザーのPATHを引き継ぐ

$ sudo visudo

の実行後に、viエディタの操作が必要だったため以下を参考にしました。
viエディタの使い方

パスが通ったと思ったら、シンタックスエラー問題

$ heroku --version

herokuのバージョン確認をすると、以下のエラーが...

/usr/local/lib/heroku/node_modules/@oclif/command/lib/index.js:3
const path = require("path");
^^^^^
SyntaxError: Use of const in strict mode.
    at Module._compile (module.js:439:25)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/usr/local/lib/heroku/bin/run:5:1)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)

Node.jsのバージョンが古すぎたみたいです。

$ node -v

確認してみたところv0.10.48でした。

解決方法:キャッシュを消して、新しいバージョンを入れる。

いろいろと試したため、ダイレクトな解決方法にならない場合はすみません。

npmがインストールされていなかったので、インストールしました。ついでにnodeもインストール。
Herokuを入れるためにnpmが必要かどうかはわかりませんが、とりあえずインストールしました。

$ sudo yum install nodejs npm

偉い権限の方に行く。

$ sudo -s

左のやつが$から#に変わる。

インストールするために必要なやつ(正直、よくわかってないですがsetup_11.xの数字の部分でインストールするバージョンを指定。)

# curl --silent --location https://rpm.nodesource.com/setup_11.x | bash 

ここから、インストールとアンインストールを繰り返したため、手順が間違っていたらすみません。
以下を参考にしました。先の読んでおいて欲しいです。
yumでのnodejsのバージョンアップにはまった話と解決方法

古い方のrpmを削除。

# rm /etc/yum.repos.d/nodesource-el.repo

アンインストールする。

# yum -y remove nodejs

キャッシュを削除。

# yum clean all

インストールする。

# yum -y install nodejs

バージョンを確認。

# node -v
v11.15.0

成功です!
そして、偉い権限のところから出る。

# su vagrant

herokuのバージョンも確認

$ heroku -v
heroku/7.44.0 linux-x64 node-v11.15.0

他の参考記事です。
https://qiita.com/daskepon/items/16a77868d38f8e585840
https://inaba.hatenablog.com/entry/2018/11/13/023933

ほぼ同じエラーが出ていた記事
https://teratail.com/questions/256490

感謝

参考にさせていただいたサイト管理人の皆様、誠にありがとうございました。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1