我們常用的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
,著實差了一大截。
筆者也同時實測了Centos 7,安裝到的Node.js版本為6.16.0
。
再來,Node.js總是會搭配npm
這個指令工具來用。
以Debian或是基於其衍生的Linux發行版本來說,可以直接使用以下的指令來完成npm的安裝。
sudo apt install npm
若執行以上指令卻出現node-gyp
沒有安裝的訊息,可以先執行sudo apt install nodejs-dev node-gyp libssl1.0-dev
。
以紅帽系的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)的環境中。
用n來安裝最新的Node.js和npm
在終端機執行以下指令就可以安裝最新的,即當前正在積極開發的Node.js和npm:
sudo n latest
為了避免和官方軟體源中舊版的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-remote --all
若想要安裝指定的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
當要安裝的Node.js版本,「n」先前已經安裝過的話,「n」只會純粹做切換,而不會重新再透過網路下載檔案。
清理Node.js
由於「n」會把不同的版本的Node.js放在不同的檔案目錄中,因此時間一久,在不斷更新下,系統環境會累積很多已經用不到的舊版Node.js。使用以下指令,可以將非目前正在使用的Node.js版本全部移除:
sudo n prune