我們常用的Node.js版本可分為三種,一種是當前正在積極開發的版本(Current),一種是最新的LTS版本(Active LTS),還有一種是上一代依然在維護中的LTS版本(Maintenance LTS)。若想在Linux作業系統上安裝Node.js,要怎麼樣才能夠安裝最新或是指定版本的Node.js呢?



以Debian或是基於其衍生的Linux發行版本來說,可以直接使用以下的指令來完成Node.js的安裝。

sudo apt install nodejs

以紅帽系的Linux發行版本來說,可以直接使用以下的指令來完成Node.js的安裝。

sudo dnf install nodejs

然而當我們查看從官方軟體源安裝的Node.js版本時,就會發現它很有可能不是我們會使用到的版本。

如下圖,在Ubuntu 18.04上安裝Node.js。在筆者撰寫這篇文章的此時,Node.js正在積極開發的版本號碼為12.4.0,最新LTS版本的號碼為10.16.0,上一代的LTS版本的版本號碼為8.16.0。然而Ubuntu安裝的Node.js版本為8.10.0,著實差了一大截。

linux-install-nodejs

筆者也同時實測了Centos 7,安裝到的Node.js版本為6.16.0

再來,Node.js總是會搭配npm這個指令工具來用。

以Debian或是基於其衍生的Linux發行版本來說,可以直接使用以下的指令來完成npm的安裝。

sudo apt install npm

以紅帽系的Linux發行版本來說,可以直接使用以下的指令來完成npm的安裝。

sudo dnf install npm

同樣地,從官方軟體源安裝的npm版本,通常也是非常舊的。好比撰文的此時最新的npm版本為6.9.0,Ubuntu 18.04安裝的npm版本為3.5.2,Centos 7安裝的npm版本為3.10.10

n

「n」是一個非常實用的Node.js指令工具,可以快速地安裝最新或是指定版本的Node.js和npm,並能在不同版本間進行切換。

安裝「n」

「n」可以透過npm來進行安裝,所以我們可以先利用Linux發行版的官方軟體源來安裝任意版本的npm,再用這個npm來安裝「n」。「n」的npm安裝指令如下:

sudo npm i -g n

加入-g參數可以讓「n」安裝到全域(global)的環境中。

linux-install-nodejs

用n來安裝最新的Node.js和npm

在終端機執行以下指令就可以安裝最新的,即當前正在積極開發的Node.js和npm:

sudo n latest

linux-install-nodejs

為了避免和官方軟體源中舊版的Node.js和npm起衝突,在安裝完最新的Node.js和npm後,可以用以下指令來把一開始為了安裝「n」而裝的Node.js和npm給移除掉。

Debian或是基於其衍生的Linux發行版的指令如下:

sudo apt remove nodejs npm

紅帽系的Linux發行版的指令如下:

sudo dnf remove nodejs npm

用n來安裝指定版本的Node.js和npm

使用以下指令可以查看所有Node.js的版本。

n ls

linux-install-nodejs

若想要安裝指定的Node.js版本,只要在n這個指令後直接接上版本號碼就好了,例如要安裝8.16.0,指令為:

sudo n 8.16.0

不過一般我們不太需要去管修訂版本號,甚至是次版本號。所以如果想要直接安裝「Node.js 8.x最新版」,指令可以直接寫成:

sudo n 8

切換Node.js的版本

「n」會把不同的版本的Node.js放在不同的檔案目錄中,我們可以直接執行以下指令來查看先前已經安裝過哪些版本的Node.js。

n

linux-install-nodejs

當要安裝的Node.js版本,「n」先前已經安裝過的話,「n」只會純粹做切換,而不會重新再透過網路下載檔案。

清理Node.js

由於「n」會把不同的版本的Node.js放在不同的檔案目錄中,因此時間一久,在不斷更新下,系統環境會累積很多已經用不到的舊版Node.js。使用以下指令,可以將非目前正在使用的Node.js版本全部移除:

sudo n prune