Node.js のインストールとバージョン管理

Ubuntu にNode.js をインストールしてバージョン管理する方法のメモ

本家日本語版のダウンロードサイトはこちら [Node.js ダウンロード](https://nodejs.org/ja/download/

うちの場合は Linux Binaries (x86/x64) をダウンロードだが、この方法はとらない。理由はNodeのバージョン管理がしたいから。しかし......

  1. apt で nodejs と npm をインストールした場合は、Nodeのバージョン管理が面倒。
  2. Node のバージョン管理ツールはたくさんあってどれがいいか迷う。

Node のインストールになると、たいていこの2つの問題にまずぶちあたる。 Macでは nodebrew を使ってる人が多いみたい(自分も会社のMacではそうした)が、家の Ubuntu では n コマンドを使ってみることにした。

ちなみに今は apt-get より apt コマンドが推奨されているらしい(Ubuntu 14.04以降)。【参考】「apt-get」はもう古い?新しい「apt」コマンドを使ったUbuntuのパッケージ管理 ここでも apt を使う。

内容はバージョン情報、aptコマンドを使ったことなど以外、ほとんど下記のサイトを参考にさせていただきました。 【参考】Ubuntu16.04で任意のバージョンのNode.jsをインストールする方法

環境

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.5 LTS"

n コマンドのインストール

n コマンドは npm でインストールする。nodejs を入れるのに、その Node のパッケージ管理ツールが必要というのが面倒。

n-install というサードパーティ製のインストール・ツールがあるらしいが、その時だけのものをあまり入れたくないのでパス。一応GitのURLはここ[n-install](https://github.com/mklement0/n-install

というわけで面倒だが次の手順。

  1. apt で nodejs と npm をインストール
  2. npm で n をインストール
  3. nコマンドで nodejs をインストール
  4. apt でインストールした nodejs と npm をアンインストール

apt で nodejs と npm をインストール

$ sudo apt install nodejs npm

npm で n をインストール

$ sudo npm install -g n
/usr/local/bin/n -> /usr/local/lib/node_modules/n/bin/n
+ n@2.1.12
added 1 package in 0.896s

whichコマンドで出てくる /usr/local/bin/n はSリンク コマンド本体のインストール場所は、/usr/local/lib/node_modules/n/bin/n

$ which n
/usr/local/bin/n
$ ls -lF /usr/local/bin/n
lrwxrwxrwx 1 root root 27  98 15:54 /usr/local/bin/n -> ../lib/node_modules/n/bin/n*
$ tree /usr/local/lib/node_modules/n -L 3
/usr/local/lib/node_modules/n
├── Makefile
├── README.md
├── bin
│   └── n
└── package.json

インストールする Node.js のバージョンを決める。

n ls でインストールできる Node.js のバージョンを調べる。行がたくさん出るので途中省略。(n list でも同じ)

$ n ls

    0.0.1
    0.0.2
    0.0.3
    0.0.4
    ..................
    10.4.1
    10.5.0
    10.6.0
    10.7.0
    10.8.0
    10.9.0
    10.10.0

インストールするために、特定バージョンをオプションで事前に確認できる。 現在インストールされているバージョンはやや太字で、使用バージョンには◯がつく。

最新の安定バージョンの確認

$ n --stable
10.10.0

最新のLTS版の確認

$ n --lts
8.11.4

最新版の確認

$ n --latest
10.10.0

nコマンドで nodejs をインストール

現状(2018.9月現在)では、最新版の ver.10.10.0 が最新安定版のようなので、これと最新のLTS版をインストールしてみる。LTS版は書籍などではまだこのバージョン8での解説も多いので、切り替えて使うことを想定。

安定版のインストール

$ sudo n stable
[sudo] user のパスワード:

     install : node-v10.10.0
       mkdir : /usr/local/n/versions/node/10.10.0
       fetch : https://nodejs.org/dist/v10.10.0/node-v10.10.0-linux-x64.tar.gz
######################################################################## 100.0%
   installed : v10.10.0

最新LTS版をインストール

$ sudo n lts

     install : node-v8.11.4
       mkdir : /usr/local/n/versions/node/8.11.4
       fetch : https://nodejs.org/dist/v8.11.4/node-v8.11.4-linux-x64.tar.gz
######################################################################## 100.0%
   installed : v8.11.4

他にも最新版や任意のバージョンに応じたインストール・オプションがある。

最新版のインストール

sudo n latest

任意のバージョンをインストール

sudo n 10.4.1

apt でインストールした nodejs と npm をアンインストール

n コマンドで Node.js のバージョン管理をするので、apt で入れた方は不要。

$ sudo apt purge nodejs npm
$ sudo apt autoremove

インストールされたバージョンを確認

$ n --version
2.1.12

$ npm -v
5.6.0

$ node -v
v8.11.4

このインストール手順では最後に入れたLTS版が生きている。

任意のバージョンに切り替えて使う

LTS版から最新安定版に切り替える

$ sudo n stable
$ node -v
v10.10.0

nodejs を切り替えると npm も対応したバージョンに切り替わる。このあたりがバージョン管理コマンドを使うと便利。

$ npm -v
6.4.1

他に最新バージョンへ切替えなど(今回の例では最新安定版=最新版なので変わらないが)

$ sudo n latest

LTS版に戻したければ

$ sudo n lts
$ node -v
v8.11.4

特定のバージョンへ切替える方法もある

$ sudo n 10.0.0

アンインストール

削除はオプションに rm または - を付けて削除するバージョンを指定

n rm バージョン

または

n - バージョン