はじめに
ドットインストールで構築したローカル環境でアプリを開発し、公開するため、いざ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
感謝
参考にさせていただいたサイト管理人の皆様、誠にありがとうございました。