Node.js — это не магия и не «среда будущего». Это просто JS, запущенный без браузера. Удобно, быстро, иногда раздражает, но работает. npm — это его кладовка с пакетами, где лежит всё: от годных инструментов до мусора, который ты проклянешь через неделю.

Я расскажу, как это поставить в Ubuntu 20.04 тремя способами. Без этих ваших «сначала немного теории». Ты сюда пришёл ставить, а не читать историю успеха команды Node Foundation.

1. Репозиторий Ubuntu

Это для ленивых или тех, кому «лишь бы встало». 

sudo apt update
sudo apt install nodejs npm

Проверить, что не сломалось:

nodejs --version

npm будет таким, каким его туда засунули, без фанатизма.

Плюс — ставится быстро. Минус — версии такие старые, что иногда даже npm install будет смотреть на тебя как на идиота.

2. NodeSource

Тут уже поинтереснее. Это репозиторий от людей, которые, в отличие от Ubuntu, обновляют Node чаще, чем раз в десятилетие. Надо, например, 14.x или 18.x? Вот сюда.

Пример для 14.x:

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt install nodejs

Проверка:

node --version
npm --version

Если вдруг понадобилось что-то древнее вроде 12.x — меняешь в команде setup_14.x на setup_12.x и погнали.

Хотите компилировать модули с C++? Ну тогда вот:

sudo apt install build-essential

Без этого некоторые npm-пакеты будут ломаться и ныть, что не могут собрать нативные дополнения.

3. NVM (Node Version Manager)

Вот это уже для тех, кто живёт с Node.js, как с вредной собакой — вечно надо переключать версии. Одно приложение просит 16.x, второе ломается на всём, кроме 12.x. Тут спасает nvm.

Ставим:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash

sudo не трогаем — nvm ставится на пользователя, а не в систему.

Подгружаем в текущую сессию:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"

Проверка:

nvm --version

Список доступных версий:

nvm list-remote

Он будет длиннее, чем твой список долгов.

Ставим последнюю:

nvm install node

Или LTS:

nvm install --lts

Или конкретную:

nvm install 10.9.0

Смотрим, что у нас в системе:

nvm ls 

Стрелочка > покажет текущую активную версию. Сменить:

nvm use 12.16.3

По умолчанию:

nvm alias default 12.16.3

Вывод

Если тебе плевать на версию — ставь из Ubuntu. Если хочешь свежак — бери NodeSource. Если работаешь с кучей проектов и вечно прыгаешь между версиями — nvm твой новый друг (и враг, когда забудешь его подгрузить).