Ubuntu19.10に最新のnode.jsをインストールする

Ubuntu19.10に最新のnode.jsをインストールする

ubuntu19.10に最新のnodeのインストール手順

環境

  • OS  Ubuntu19.10

インストール

nodeとnpmをまずインストールする。5分ほどかかりました

## rootで作業
sudo su

## アップデート
apt update

## インストール
apt install -y nodejs npm

 n package をインストールする

nodeバージョン管理ができるn packageをインストールする

## インストール
npm install n -g

## 最新のnodeのインストール
n stable

## apt install -y nodejs npmしたものは削除しておく
apt purge -y nodejs npm

シェルの再起動

シェルを再起動しておく

## 再起動
exec $SHELL -l

exec $SHELL -l → 「一度ターミナルから抜けて再度ターミナルを立ち上げる」のと同じ

バージョン確認

nodeとnpmのバージョンを確認する

## 確認
node -v

<出力結果>
v12.13.0

## 確認
npm -v

<出力結果>
6.12.0

## npmアップデート
npm update -g npm

## 確認
npm -v

<出力結果>
6.12.1

Hello Worldしてみる

簡単なコードを実行してみる。rootではなくuserで実行してます

## rootから抜ける
exit

## hello.js作成
vi hello.js

以下の内容で編集

var http = require('http');
 
http.createServer(
  function (req, res) {
    res.writeHead(200, {"Content-Type": "text/plain"});
    res.write('Hello World!');
    res.end();
  }
).listen(81,"0.0.0.0");

firewall設定

firewall設定する

## http許可
ufw allow http

実行

実行してみる

## 実行
node hello.js

エラーが発生

events.js:187
      throw er; // Unhandled 'error' event
      ^

Error: listen EACCES: permission denied 0.0.0.0:81
    at Server.setupListenHandle [as _listen2] (net.js:1283:19)
    at listenInCluster (net.js:1348:12)
    at doListen (net.js:1487:7)
    at processTicksAndRejections (internal/process/task_queues.js:81:21)
Emitted 'error' event on Server instance at:
    at emitErrorNT (net.js:1327:8)
    at processTicksAndRejections (internal/process/task_queues.js:80:21) {
  code: 'EACCES',
  errno: 'EACCES',
  syscall: 'listen',
  address: '0.0.0.0',
  port: 81
}

Error: listen EACCES: permission denied 0.0.0.0:81

管理者権限がないと1024番以下ポートを指定してlistenできなので上記エラーが発生するので

## sudoで実行
sudo node hello.js

ブラウザから http://プライベートIP:81 にアクセスするとhello worldが表示されます

ついでにyarnもインストール

## インストール
npm install -g yarn

## 確認
yarn -v

<出力結果>
1.19.1