Cài đặt Node.js trên Debian/Ubuntu

Hướng dẫn cài đặt Node.js trên hệ điều hành Linux, cụ thể ở đây là Ubuntu/Debian.

Cài đặt từ repository mặc định

Đây là cách đơn giản nhất. Tuy nhiên phiên bản Node.js trên repository của Debian/Ubuntu thường là khá cũ so với phiên bản hiện tại.

Để cài đặt, hãy mở Terminal bằng cách ấn Ctrl-Alt-T , gõ lệnh sau để cài đặt nodejsnpm bằng công cụ apt.

$ sudo apt update
$ sudo apt install -y nodejs npm

Cài đặt thông qua NodeSource

NodeSource là repository chứa prebuilt package của Node.js dành cho Linux distro nền tảng Debian (.deb) hoặc Red Hat (.rpm).

Khác với khi cài đặt qua repository mặc định, Node.js cài đặt từ NodeSource luôn có phiên bản mới nhất.

NodeSource cung cấp script hỗ trợ đăng ký package source theo từng version lớn của Node.js. Để đơn giản hóa, tôi làm script sau.

~/bin/nodesource.sh

#!/bin/bash
#
# lts - Long term support
# current - Current latest version
MAJOR_VERSION=$1
curl -fsSL https://deb.nodesource.com/setup_${MAJOR_VERSION}.x | sudo -E bash -
sudo apt-get install -y nodejs

Cấp quyền thực thi cho lệnh

$ chmod +x ~/bin/nodesource.sh

Ví dụ để cài đặt Node.js phiên bản v16.x.x, ta sử dụng dòng lệnh sau:

$ nodesource.sh 16

Cài đặt phiên bản Long-term Support:

$ nodesource.sh lts

Cài đặt phiên bản mới hiện nay:

$ nodesource.sh current

Sau khi cài đặt, hãy thử kiểm tra phiên bản Node.js hiện thời bằng lệnh:

$ node --version

Để cập nhật, ta dùng apt như bình thường:

$ sudo apt update
$ sudo apt install -y nodejs

Để nâng cấp Node.js lên phiên bản lớn khác, ta lại dùng lệnh nodesource.sh ở trên, chỉ thay số phiên bản. Ví dụ, ta nâng từ bản 16.x.x lên bản 17.x.x như sau:

$ nodesource.sh 17

Cài đặt bằng Node Version Manager (NVM)

Node Version Manager (NVM) là một script (CLI) hỗ trợ cài đặt bất cứ phiên bản node.js nào. NVM hoạt động trên các shell theo chuẩn POSIX như trên các nền tảng Unix, MacOS hoặc Windows WSL.

NVM tải Node.js về và cài đặt tại thư mục ~/.nvm nên không yêu cầu quyền root và việc dọn dẹp cũng đơn giản hơn, chỉ việc xóa thư mục đó đi là xong.

Tôi tạo script sau để đơn giản hóa việc cài đặt NVM.

~/bin/install_nvm.sh

#!/bin/bash

# Get the latest version of the NVM script
LATEST_NVM=$(git ls-remote --refs --tags --sort='v:refname' \
    https://github.com/nvm-sh/nvm | \
    tail --line=1 | \
    cut --delimiter='/' --fields=3)

# Download the script and execute
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/${LATEST_NVM}/install.sh | bash

Cấp quyền thực thi cho lệnh

$ chmod +x ~/bin/install_nvm.sh

Chạy script để cài đặt NVM bản mới nhất.

$ install_nvm.sh

Sau khi chạy script xong, bạn nên mở một Terminal mới để kiểm tra xem nvm đã được cài đặt thành công chưa bằng lệnh command. Nếu kết quả trả về là nvm là OK.

$ command -v nvm

Tiếp theo, dùng NVM để cài đặt phiên bản Node.js bạn muốn. Ví dụ để cài đặt Nodejs phiên bản 14.7.1, hãy dùng lệnh

$ nvm install 14.7.1

Hoặc cài đặt một phiên bản mới nhất bằng lệnh sau (node ám chỉ phiên bản mới nhất)

$ nvm install node

Bạn hãy tham khảo tài liệu hướng dẫn của NVM để biết thêm chi tiết.

Cài đặt từ mã nguồn

Chuẩn bị môi trường

Cài đặt git, gcc compiler và các library cần thiết.

$ sudo apt update
$ sudo apt install build-essential git python3-distutils

Script tải mã nguồn, biên dịch và cài đặt

Chương trình sau sẽ gỡ cài đặt phiên bản cũ build từ mã nguồn hiện tại nếu có → Clone / Fetch mã nguồn Node.js từ GitHub → Checkout phiên bản chỉ định → Build mã nguồn → Cài đặt vào thư mục /usr/local.

/usr/local/bin/install_nodejs.sh

#!/bin/bash
# nodejs.sh [VERSION]
# @author: Nguyen Hong Hai
#
NODE_SRC=/usr/local/src/node # path to the source code repo
NODE_DST=/usr/local # where nodejs will be installed
 
NODE_REPO=https://github.com/nodejs/node
 
mkdir -p ${NODE_SRC}
 
# download the source code if it is not available yet
if [ ! -d ${NODE_SRC}/.git ]; then
    rm -rf ${NODE_SRC}
    git clone ${NODE_REPO} ${NODE_SRC}
fi
 
cd ${NODE_SRC}
 
if git tag | grep -qE "^${1}$"; then
    VERSION=${1}
else
    echo "Invalid version ${1}."

    # Get the latest version
    VERSION=$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))
    while :; do
        read -n 1 -p "Install version ${VERSION}? [y/N] :" q
        if [[ $q =~ ^[yN]$ ]]; then
            [[ $q == "y" ]] && break || exit 1
        else
            echo
        fi
    done
fi
 
echo "Uninstall the previous version"
make uninstall 2>/dev/null
make clean 2>/dev/null
 
# Clean the local git
git reset
git checkout .
git clean -fdx

# Download the latest changes from the remote repository
git pull
git fetch
 
echo "Downloading Nodejs ${VERSION}..."
git checkout ${VERSION} -b ${VERSION}
 
echo "Building the source code"
./configure --prefix=${NODE_DST}

NCPUCORES=$(grep -c processor /proc/cpuinfo)
make -j${NCPUCORES}
 
echo "Installing..."
make install

Cách sử dụng script

Sử dụng lệnh install_nodejs.sh với cú pháp:

$ sudo install_nodejs.sh [VERSION]

Bạn có thể xem danh sách các version bằng lệnh git tag.

$ cd /usr/local/src/node
$ git tag

Nếu muốn cài đặt một phiên bản cụ thể, bạn hãy truyền vào tham số của script. Hoặc bỏ qua nếu muốn cài đặt phiên bản mới nhất.

Ví dụ, để cài đặt Node.js phiên bản 10.16.0

$ sudo install_nodejs.sh v10.16.0