最近在處理公司產品的套件升級,發現滿多套件都依賴 Node.js,需要先升級機器的 Node.js 才能進行後續的處理,這篇文章就以 Ubuntu 為例,筆記一下在 Linux 中升級 Node.js 的方法。
如果擔心直接升級機器的 Node.js 的話,我滿推薦先用 OrbStack 在自己的電腦開 Linux 的 VM 來做一些測試。(OrbStack 是 mac 用來開發 docker container 以及啟用 VM 的好工具!)
延伸閱讀:Docker Desktop 殺手 – OrbStack 教學
Table of Contents
1. 使用 nodesource 來安裝
nodesource 有在維護各種版本的 Node.js,方便開發人員在不同的 linux 作業系統上安裝。使用這個方法的好處是,Linux 只會有一種版本的 Node.js。
以下以 ubuntu 為例,將 Node.js 從 16 版升到 18 版。
1.1 確認目前使用的 Node.js 版本
$ node -v
v16.20.2
1.2 下載設定指令
nodesource 提供了安裝前設定 Node.js 的 shell script,可以直接用 curl 下載到 local
(如果要安裝的 Node.js 版本是 20 的話,只需要把 setup_ 後面的 18 改成 20 即可)
$ curl -sL <https://deb.nodesource.com/setup_18.x> -o /tmp/nodesource_setup.sh
1.3 執行設定指令
執行剛剛下載下來的 shell script,會先安裝 Node.js 相依的 package
$ sudo bash /tmp/nodesource_setup.sh
1.4 安裝欲升級的 Node.js
$ sudo apt install nodejs
1.5 確認安裝後的 Node.js 版本
$ node -v
v18.20.3
可以看到,使用 nodesource 提供的 script 可以說是無痛升級,還可以維持 linux 中只有一個版本的 Node.js,可說是皆大歡喜。
1.6 解除安裝 Node.js
如果用這個方法安裝 Node.js 的話,要解除安裝也很簡單,直接用 apt remove 即可
$ sudo apt remove nodejs
$ node -v
-bash: node: command not found
2. 使用 nvm
nvm (Node Version Manager) 是許多開發者在 local 會使用的軟體,由於 local 上不同 repo 的 Node.js 可能不同,因此使用 nvm 可以快速切換 Node.js 的版本,不過在 Linux 上通常不太會用到不同版的 Node.j,因此個人比較頃向使用第一個方法,但這裡還是整理一下使用 nvm 來安裝 Node.js 的筆記。
2.1 安裝 nvm
$ curl -o- <https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh> | bash
2.2 reload bashrc
安裝完 nvm 後,會自動更新 bashrc 檔,因此會需要 reload bashrc(如果是用 zsh 就是 reload zshrc 檔)
$ source ~/.bashrc
2.3 使用 nvm 安裝 Node.js
可以直接用 nvm 來安裝 Node.js,假設目前想安裝 18 版的 Node.js:
$ nvm install 18
nvm 會直接安裝 18 版的 LTS (Long-term support) 版本
2.4 設定 nvm 預設使用的 Node.js 版本
就像前面提到的,nvm 通常用來管理多版本的 Node.js,因此也可以設定要預設的 Node.js 版本
$ nvm alias default 18
這樣就會預設全域使用 18 版的 Node.js
2.5 nvm 常用指令
最後提供一下 nvm 常用的相關指令:
# 找到 .nvmrc,並使用該內容的版本
$ nvm use
# 用大版號的 lts 版本
$ nvm use [nodejs_version] --lts
# 安裝大版號的 lts 版本
$ nvm install 18
# 解除安裝某個 Node.js 版本
$ nvm uninstall [nodejs_version]
# 設定全域的 node 版本
$ nvm alias default 18
# 列出 local 有安裝的 nodejs 版本
# nvm 目前預設的版本
# 各大版號目前的 lts 版本
$ nvm list
2.6 解除安裝 nvm
2.6.1 移除 nvm 相關的檔案
$ rm -rf ~/.nvm
$ rm -rf ~/.npm
2.6.2 移除 bashrc 裡 nvm 相關的 config
# ~/.bashrc
# 移除以下三行
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
3. 參考資料
How To Install Node.js on Ubuntu 20.04
How to uninstall nvm? · Issue #298
如果覺得我的文章有幫助的話,歡迎幫我的粉專按讚哦~謝謝你!