نحوه نصب Node.js روی سرور مجازی اوبونتو Ubuntu
۱۴ بهمن ۱۴۰۳
مقدمه
Node.js یک ماشین اجرای JavaScript است که برای برنامهنویسی سمت سرور ساخته شده است. این فناوری به توسعهدهندگان امکان میدهد تا با استفاده از JavaScript، در سمت back-end به توسعه برنامه خود، بپردازند. در این راهنما، سه روش مختلف برای نصب Node.js روی یک سرور مجازی Ubuntu را بررسی خواهیم کرد:
- استفاده از apt برای نصب پکیج nodejs از مخزن نرمافزاری پیشفرض اوبونتو
- استفاده از apt همراه با یک PPA software repository برای نصب نسخههای خاصی از پکیج nodejs
- نصب nvm (Node Version Manager) و استفاده از آن برای نصب و مدیریت چندین نسخه از Node.js
برای بسیاری از کاربران، استفاده از apt و repository پیشفرض کافی خواهد بود. اما اگر به نسخههای جدیدتر (یا قدیمیتر) Node.js نیاز دارید، باید از PPA repository استفاده کنید. اگر بهصورت فعال در حال توسعه برنامههای Node.js هستید و نیاز به تغییر مداوم بین نسخههای مختلف Node دارید، روش nvm را انتخاب کنید.
برای استقرار راحتتر برنامههای Node.js، میتوانید از هاست Node.js رایگان لیارا استفاده کرده و برنامههای Node.js خود را در عرض چند دقیقه و بهسرعت، راهاندازی کنید.
پیشنیازها
این راهنما فرض میکند که شما از آخرین نسخه Ubuntu (نسخه LTS اوبونتو، 24.04) استفاده میکنید. قبل از شروع، باید یک حساب کاربری non-root با دسترسی sudo روی سیستم خود تنظیم کرده باشید. برای یادگیری نحوه انجام این کار، میتوانید از راهنمای تنظیم اولیه سرور اوبونتو استفاده کنید.
قبل از ادامه، توصیه میکنیم جدول توزیع NodeSource را بررسی کنید تا ببینید کدام نسخه از Node.js با نسخه سرور مجازی Ubuntu شما سازگار است. این راهنما برای جدیدترین نسخههای Ubuntu معتبر هست:
- Ubuntu 24.04
- Ubuntu 22.04
- Ubuntu 20.04
اگر از نسخه Ubuntu 18.04 یا نسخههای قدیمیتر استفاده میکنید، توصیه میکنیم که سرور مجازی خود را به نسخههای جدیدتر ارتقا دهید، زیرا اوبونتو دیگر از نسخههای قدیمی پشتیبانی نمیکند.
در ادامه، بخوانید:
- گزینه اول: نصب Node.js با Apt از repositoryهای پیشفرض
- گزینه دوم: نصب Node.js با Apt با استفاده از PPA از NodeSource
- گزینه سوم: نصب Node.js با استفاده از Node Version Manager (nvm)
- حذف Node.js
- نتیجهگیری
گزینه اول: نصب Node.js با Apt از repositoryهای پیشفرض
Ubuntu شامل نسخهای از Node.js در repositoryهای پیشفرض خود است که میتواند تجربهای یکپارچه را در چندین سیستم ارائه دهد. در زمان نگارش این مقاله، نسخه موجود در این repositoryها، 12.22.9 بود. این نسخه جدیدترین نسخه نیست، اما پایدار بوده و برای آزمایش سریع این زبان کافی است. برای دریافت این نسخه، میتوانید از apt package manager استفاده کنید. ابتدا با وارد کردن دستور زیر، فهرست پکیجهای local را بهروزرسانی کنید:
sudo apt update
سپس Node.js را نصب کنید:
sudo apt install nodejs -y
اگر از شما خواسته شد که سرویسی را مجدداً راهاندازی کنید، کلید ENTER را بزنید تا تنظیمات پیشفرض اعمال شده و نصب ادامه یابد. برای اطمینان از نصب موفقیتآمیز، نسخه Node.js را بررسی کنید:
node -v
خروجی، باید مشابه زیر باشد:
v12.22.9
اگر پکیج موجود در repositoryهای اوبونتو نیازهای شما را برآورده میکند، همین مراحل برای راهاندازی Node.js کافی است. اما در بیشتر موارد، شما به npm و Node.js package manager هم، نیاز خواهید داشت. میتوانید این ابزار را با دستور زیر نصب کنید:
sudo apt install npm
این کار به شما امکان میدهد ماژولها و پکیجهای مختلف را برای استفاده در Node.js، نصب کنید. در این مرحله، شما با موفقیت Node.js و npm را با استفاده از apt و repositoryها پیشفرض اوبونتو نصب کردهاید. در بخش بعدی، نحوه استفاده از یک repository جایگزین برای نصب نسخههای مختلف Node.js را بررسی خواهیم کرد.
گزینه دوم: نصب Node.js با Apt با استفاده از PPA از NodeSource
برای نصب نسخهای متفاوت از Node.js، میتوانید از یک PPA (Personal Package Archive) که توسط NodeSource مدیریت میشود، استفاده کنید. این PPA شامل نسخههای بیشتری از Node.js نسبت به repositoryهای رسمی اوبونتو است. در زمان نگارش این مقاله، نسخههای Node.js v14 و v16 و v18 در این PPA در دسترس بودند.
ابتدا باید PPA را نصب کنیم تا به پکیجهای آن دسترسی داشته باشیم. از دایرکتوری home خود، از curl
برای دریافت اسکریپت نصب نسخه موردنظر خود استفاده کنید. حتماً مقدار 20.x
را در دستور زیر با نسخه موردنظر خود جایگزین کنید (در صورتی که نسخه متفاوتی نیاز دارید):
cd ~
curl -sL https://deb.nodesource.com/setup_20.x -o nodesource_setup.sh
اگر curl روی سیستم شما نصب نیست، میتوانید آن را با دستور زیر نصب کنید:
sudo apt install curl
برای مشاهده اطلاعات بیشتر در مورد نسخههای موجود، میتوانید به مستندات NodeSource مراجعه کنید. میتوانید محتوای اسکریپت دانلودشده را با استفاده از nano (یا هر ویرایشگر متنی دیگر) مشاهده کنید:
nano nodesource_setup.sh
خروجی، باید مشابه زیر باشد:
#!/bin/bash
# Logger Function
log() {
local message="$1"
local type="$2"
local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
local color
local endcolor="\033[0m"
case "$type" in
"info") color="\033[38;5;79m" ;;
"success") color="\033[1;32m" ;;
"error") color="\033[1;31m" ;;
*) color="\033[1;34m" ;;
esac
echo -e "${color}${timestamp} - ${message}${endcolor}"
}
# Error handler function
handle_error() {
local exit_code=$1
local error_message="$2"
log "Error: $error_message (Exit Code: $exit_code)" "error"
exit $exit_code
}
# Function to check for command availability
command_exists() {
command -v "$1" &> /dev/null
}
check_os() {
if ! [ -f "/etc/debian_version" ]; then
echo "Error: This script is only supported on Debian-based systems."
exit 1
fi
}
# Function to Install the script pre-requisites
install_pre_reqs() {
log "Installing pre-requisites" "info"
# Run 'apt-get update'
if ! apt-get update -y; then
handle_error "$?" "Failed to run 'apt-get update'"
fi
# Run 'apt-get install'
if ! apt-get install -y apt-transport-https ca-certificates curl gnupg; then
handle_error "$?" "Failed to install packages"
fi
if ! mkdir -p /usr/share/keyrings; then
handle_error "$?" "Makes sure the path /usr/share/keyrings exist or run ' mkdir -p /usr/share/keyrings' with sudo"
fi
rm -f /usr/share/keyrings/nodesource.gpg || true
rm -f /etc/apt/sources.list.d/nodesource.list || true
اجرای اسکریپتهای شل third party، همیشه بهترین روش نیست، اما در این مورد، NodeSource منطق مخصوص خود را پیادهسازی کرده تا اطمینان حاصل شود که دستورات صحیح، متناسب با نسخه و توزیع لینوکس شما اجرا میشوند. اگر مطمئن شدید که اسکریپت ایمن است، از ویرایشگر خارج شده و آن را اجرا کنید:
sudo bash nodesource_setup.sh
با اجرای این اسکریپت، PPA به تنظیمات سیستم شما اضافه شده و cache پکیجهای local، بهطور خودکار بهروزرسانی میشود.
قبل از نصب نسخه جدید، بهتر است نسخههای قدیمی Node.js و npm را حذف کنید. این کار روی پیکربندیهای شما تأثیری نخواهد داشت و فقط نسخههای نصبشده را حذف میکند:
sudo apt remove nodejs npm
از آنجا که PPAهای third party ممکن است پکیجهای خود را بهگونهای ارائه کنند که مستقیماً با پکیجهای پیشفرض، قابل ارتقا نباشد، در صورت بروز مشکل، بهتر است از ابتدا نصب را انجام دهید. پس از تنظیم PPA، میتوانید Node.js را همانند روش قبلی نصب کنید:
sudo apt install nodejs
برای اطمینان از اینکه نسخه جدید نصب شده است، میتوانید دستور زیر را اجرا کنید:
node -v
خروجی:
v20.18.0
بسته nodejs در PPA ارائهشده توسط NodeSource، شامل node binary و npm است، بنابراین نیازی به نصب جداگانه npm ندارید. در این مرحله، شما با موفقیت Node.js و npm را با استفاده از apt و ریپازیتوری NodeSource PPA نصب کردهاید. در بخش بعدی، نحوه استفاده از Node Version Manager (nvm) برای نصب و مدیریت چندین نسخه از Node.js را بررسی خواهیم کرد.
گزینه سوم: نصب Node.js با استفاده از Node Version Manager (nvm)
روش دیگری که برای نصب Node.js انعطافپذیری بیشتری دارد، استفاده از nvm (Node Version Manager) است. این ابزار به شما امکان میدهد نسخههای مختلفی از Node.js و بستههای وابسته به آن را بهصورت همزمان نصب و مدیریت کنید.
برای نصب NVM، به GitHub پروژه مراجعه کنید و دستور curl موجود در فایل README را کپی کنید تا جدیدترین نسخه اسکریپت نصب را دریافت کنید.
نکته امنیتی: قبل از اجرای اسکریپت، میتوانید آن را بررسی کنید تا مطمئن شوید عملیات مشکوکی انجام نمیدهد. برای این کار، بخش | bash
را از انتهای دستور حذف کنید و اسکریپت را دانلود کنید:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh
خروجی، باید مشابه زیر باشد (نمونه):
...
#!/usr/bin/env bash
{ # this ensures the entire script is downloaded #
nvm_has() {
type "$1" > /dev/null 2>&1
}
nvm_echo() {
command printf %s\\n "$*" 2>/dev/null
}
if [ -z "${BASH_VERSION}" ] || [ -n "${ZSH_VERSION}" ]; then
# shellcheck disable=SC2016
nvm_echo >&2 'Error: the install instructions explicitly say to pipe the install script to `bash`; please follow them'
exit 1
fi
...
...
nvm_reset() {
unset -f nvm_has nvm_install_dir nvm_latest_version nvm_profile_is_bash_or_zsh \
nvm_source nvm_node_version nvm_download install_nvm_from_git nvm_install_node \
install_nvm_as_script nvm_try_profile nvm_detect_profile nvm_check_global_modules \
nvm_do_install nvm_reset nvm_default_install_dir nvm_grep
}
[ "_$NVM_ENV" = "_testing" ] || nvm_do_install
} # this ensures the entire script is downloaded #
....
پس از بررسی محتوا و عدم وجود مورد مشکوک، دستور را مجدداً اجرا کنید و در انتها | bash
را را به آن، اضافه کنید:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
این اسکریپت، nvm را روی حساب کاربری شما نصب میکند. برای فعالسازی nvm، باید فایل .bashrc
را بارگذاری کنید:
source ~/.bashrc
پس از نصب nvm، میتوانید فهرست نسخههای موجود را بررسی کنید:
nvm list-remote
خروجی (نمونه):
. . .
v20.18.1 (LTS: Iron)
v20.18.2 (Latest LTS: Iron)
v21.0.0
v21.1.0
v21.2.0
v21.3.0
v21.4.0
v21.5.0
v21.6.0
v21.6.1
v21.6.2
v21.7.0
v21.7.1
v21.7.2
v21.7.3
v22.0.0
v22.1.0
v22.2.0
v22.3.0
v22.4.0
v22.4.1
v22.5.0
v22.5.1
v22.6.0
v22.7.0
v22.8.0
v22.9.0
v22.10.0
v22.11.0 (LTS: Jod)
v22.12.0 (LTS: Jod)
v22.13.0 (LTS: Jod)
v22.13.1 (Latest LTS: Jod)
v23.0.0
v23.1.0
v23.2.0
v23.3.0
v23.4.0
v23.5.0
v23.6.0
v23.6.1
v23.7.0
برای نصب نسخهای مشخص از Node.js، میتوانید نسخه موردنظر را از فهرست بالا انتخاب کرده و دستور زیر را اجرا کنید. برای مثال، برای نصب Node.js v20.18.2 (آخرین نسخه LTS):
nvm install v20.18.2
پس از نصب، میتوانید فهرست نسخههای نصبشده را مشاهده کنید:
nvm list
خروجی (نمونه):
-> v20.18.2
system
default -> v20.18.2
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v20.18.2) (default)
stable -> 20.18 (-> v20.18.2) (default)
lts/* -> lts/jod (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.21.3 (-> N/A)
lts/gallium -> v16.20.2 (-> N/A)
lts/hydrogen -> v18.20.6 (-> N/A)
lts/iron -> v20.18.2
lts/jod -> v22.13.1 (-> N/A)
اگر نسخهای از Node.js را با apt نیز نصب کردهاید، ممکن است در خروجی nvm list
گزینه system را ببینید. در این حالت، میتوانید نسخه نصبشده سیستمی را فعال کنید:
nvm use system
همچنین میتوانید نسخههای مختلف را بر اساس alias نصب کنید. برای مثال، برای نصب lts/fermium
(LTS مربوط به Node.js v14)، دستور زیر را اجرا کنید:
nvm install lts/fermium
خروجی:
Downloading and installing node v14.21.3...
Computing checksum with sha256sum
Checksums matched!
Now using node v14.21.3 (npm v6.14.18)
برای اطمینان از نصب صحیح Node.js، میتوانید نسخه آن را بررسی کنید:
node -v
خروجی:
v14.21.3
npm نیز بهطور خودکار همراه با Node.js نصب خواهد شد.
حذف Node.js
برای حذف Node.js، بسته به اینکه چگونه نصب شده باشد، میتوانید از apt یا nvm استفاده کنید. اگر Node.js را از طریق apt نصب کردهاید، برای حذف آن دستور زیر را وارد کنید:
sudo apt remove nodejs
بهطور پیشفرض، دستور apt remove
فایلهای پیکربندی محلی که از زمان نصب ایجاد شدهاند را حفظ میکند. اگر نمیخواهید این فایلها برای استفادههای بعدی ذخیره شوند، میتوانید از دستور apt purge استفاده کنید:
sudo apt purge nodejs
این دستور تمامی فایلهای پیکربندی را نیز حذف خواهد کرد.
اگر Node.js را با استفاده از nvm نصب کردهاید، ابتدا باید بررسی کنید که آیا نسخه موردنظر نسخه فعال فعلی است یا خیر:
nvm current
اگر نسخهای که میخواهید حذف کنید، نسخه فعال فعلی نیست، میتوانید با استفاده از دستور زیر آن را حذف کنید:
nvm uninstall node_version
در کد فوق، به جای node_version باید نسخه مدنظرتان را وارد کنید. خروجی نمونه:
Uninstalled node node_version
این دستور، نسخه انتخابشده از Node.js را حذف خواهد کرد.
اگر نسخهای که میخواهید حذف کنید، نسخه فعال فعلی است، ابتدا باید nvm را غیرفعال کنید تا تغییرات شما اعمال شود:
nvm deactivate
سپس میتوانید نسخه فعال را با همان دستور قبلی حذف کنید. این کار تمامی فایلهای مربوط به نسخه هدف Node.js را حذف میکند.
نتیجهگیری
روشهای مختلفی برای راهاندازی Node.js در سرور مجازی اوبونتو وجود دارد. شرایط شما مشخص میکند که کدام یک از روشهای فوق برای نیازهای شما بهتر است. در حالی که استفاده از نسخه بستهبندیشده در repositoryهای اوبونتو سادهترین روش است، استفاده از nvm یا PPA NodeSource، انعطافپذیری بیشتری را ارائه میدهد.
همچنین بخوانید: انتخاب هاست معتبر؛ تضمینی برای عملکرد بهتر و امنیت