いろんな Linux 環境に Node.js をインストールした記録
方針
「Ubuntuに最新のNode.jsを難なくインストールする」
https://qiita.com/seibe/items/36cef7df85fe2cefa3ea
を参考に、以下の方法を採ることにした。
- Linux ディストリビューションの公式パッケージで Node.js と npm を入れる
- npm install で最新の Node.js を入れる
- 古い Node.js を削除する
検証環境
- Ubuntu14.04 (2020/07に実行)
- Ubuntu18.04 (2020/08に実行)
- 2020-02-13-raspbian-buster-lite (2020/07に実行)
Linux ディストリビューションの公式パッケージで Node.js と npm を入れる
$ sudo apt update
$ sudo apt install nodejs npm
$ sudo node -v
ここで、 RaspberryPi だと v10.21.0
Ubuntu18.04 だとv8.10.0 だった。
npm install で最新の Node.js を入れる
$ sudo npm install n -g
Ubuntu14.04 でのエラーと対処
ここで Ubuntu14.04 でエラーが出た。
npm http GET https://registry.npmjs.org/n
npm http GET https://registry.npmjs.org/n
npm http GET https://registry.npmjs.org/n
npm ERR! Error: CERT_UNTRUSTED
npm ERR! at SecurePair.<anonymous> (tls.js:1370:32)
npm ERR! at SecurePair.EventEmitter.emit (events.js:92:17)
npm ERR! at SecurePair.maybeInitFinished (tls.js:982:10)
.
.
.
「npm install で SSL Error になった時の対処法。」
https://blog.yug1224.com/archives/563d9b67bf652a600632d01e/
を参考にして、SSL鍵のバリデーションを一旦OFFしたらうまくいった。
# sudo npm config set strict-ssl false
# sudo npm install n -g
その後設定を元に戻す。
# sudo npm config set strict-ssl true
古い Node.js を削除する
node をインストールした後、aptでインストールしたものを削除、ログオン。
$ sudo n stable
$ sudo apt purge -y nodejs npm
$ exec $SHELL -l
バージョン確認。
$ node -v
v12.18.2
実行してみる。
WebSocketを使ったものをテスト実行するために、モジュールをインストール
# npm install -g ws
実行
# node index.js
Ubuntu14.04では以下のようにエラーが出た
Error: Cannot find module 'ws'
Require stack:
「Node.jsで、存在するはずのmoduleがrequireでエラーになることについて」
https://qiita.com/DNA1980/items/11fdb7233fc288ac3502
を読んで、
echo $NOTE_PATH
で設定されていなかったので以下のように実行すればエラー解消した
export NODE_PATH=`npm root -g`