- Home »

Установка и удаление Node.js на Ubuntu — пошаговое руководство
Если занимаешься сервером администрированием или разработкой, то рано или поздно столкнёшься с необходимостью установить Node.js на Ubuntu. Это не просто очередная рутинная задача — правильная установка может сэкономить кучу времени и нервов в будущем. В этой статье разберём все способы установки Node.js, от самых простых до продвинутых, научимся правильно удалять старые версии и избегать типичных подводных камней.
Почему это важно? Node.js — это не просто JavaScript-рантайм, это целая экосистема, которая может кардинально изменить подход к разработке на сервере. С правильно настроенным Node.js ты сможешь быстро разворачивать веб-приложения, API, микросервисы и многое другое. Плюс, с npm получишь доступ к огромному количеству пакетов, которые упростят разработку.
Как работает Node.js и почему версии так важны
Node.js использует движок V8 от Google Chrome для выполнения JavaScript-кода вне браузера. Это означает, что ты можешь писать серверные приложения на том же языке, что и фронтенд. Но есть нюанс — версии Node.js выходят довольно часто, и каждая может иметь свои особенности.
Существуют два типа релизов:
- LTS (Long Term Support) — стабильные версии с долгосрочной поддержкой
- Current — актуальные версии с новыми фичами, но менее стабильные
Для продакшена всегда выбирай LTS-версии. Для экспериментов и изучения новых возможностей можно использовать Current.
Способы установки Node.js на Ubuntu
Способ 1: Установка из стандартного репозитория Ubuntu
Самый простой способ, но версия может быть устаревшей:
sudo apt update
sudo apt install nodejs npm
node --version
npm --version
Плюсы: быстро и просто. Минусы: обычно устаревшая версия.
Способ 2: Установка из официального репозитория NodeSource
Это рекомендуемый способ для получения свежих версий:
# Для Node.js 20.x (LTS)
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
# Проверяем установку
node --version
npm --version
Если нужна другая версия, просто замени `20.x` на нужную.
Способ 3: Установка через Snap
sudo snap install node --classic
Удобно, но может быть несовместимость с некоторыми пакетами из-за песочницы snap.
Способ 4: Использование NVM (Node Version Manager)
Это самый гибкий способ, особенно если работаешь с несколькими проектами:
# Установка NVM
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
# Перезагрузка терминала или выполнение
source ~/.bashrc
# Установка последней LTS-версии
nvm install --lts
nvm use --lts
# Установка конкретной версии
nvm install 18.17.0
nvm use 18.17.0
# Просмотр всех доступных версий
nvm ls-remote
# Просмотр установленных версий
nvm ls
Сравнение способов установки
Способ | Скорость | Актуальность версии | Гибкость | Рекомендация |
---|---|---|---|---|
Стандартный репозиторий | Быстро | Устаревшая | Низкая | Только для тестов |
NodeSource | Быстро | Актуальная | Средняя | Для продакшена |
Snap | Быстро | Актуальная | Низкая | Не рекомендуется |
NVM | Медленно | Любая | Максимальная | Для разработки |
Правильное удаление Node.js
Перед установкой новой версии важно правильно удалить старую, чтобы избежать конфликтов.
Удаление стандартной установки
sudo apt remove nodejs npm
sudo apt autoremove
sudo apt autoclean
Удаление установки NodeSource
sudo apt remove nodejs npm
sudo rm -rf /etc/apt/sources.list.d/nodesource.list
sudo apt update
Удаление Snap-версии
sudo snap remove node
Полная очистка системы от Node.js
Если нужно удалить все следы Node.js:
# Удаление пакетов
sudo apt remove --purge nodejs npm
sudo apt autoremove
# Удаление глобальных пакетов
sudo rm -rf /usr/local/lib/node_modules
sudo rm -rf /usr/local/bin/node
sudo rm -rf /usr/local/bin/npm
# Удаление пользовательских данных
rm -rf ~/.npm
rm -rf ~/.node-gyp
rm -rf ~/.nvm
Настройка окружения и полезные команды
После установки Node.js стоит настроить окружение для комфортной работы:
# Настройка npm для установки глобальных пакетов без sudo
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
# Обновление npm до последней версии
npm install -g npm@latest
# Проверка конфигурации
npm config list
Типичные проблемы и их решения
Проблема с правами доступа
Если при установке глобальных пакетов возникают ошибки прав доступа:
# Неправильно
sudo npm install -g package-name
# Правильно (после настройки npm-global)
npm install -g package-name
Конфликт версий
Если установлено несколько версий Node.js через разные менеджеры:
# Проверка всех установленных версий
which node
which npm
whereis node
# Проверка переменных окружения
echo $PATH
Автоматизация установки
Для автоматизации развёртывания можно создать скрипт:
#!/bin/bash
# install-node.sh
set -e
echo "Обновление системы..."
sudo apt update
echo "Установка Node.js 20.x LTS..."
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
echo "Настройка npm..."
mkdir -p ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
echo "Установка полезных пакетов..."
npm install -g pm2 nodemon
echo "Установка завершена!"
node --version
npm --version
Запуск скрипта:
chmod +x install-node.sh
./install-node.sh
Интересные факты и нестандартные применения
- Node.js в микросервисах: благодаря быстрому старту и небольшому потреблению памяти, Node.js идеально подходит для контейнеризации
- Серверные инструменты: многие популярные инструменты (Webpack, Gulp, PM2) написаны на Node.js
- Автоматизация: Node.js отлично подходит для написания скриптов автоматизации сервера
- Мониторинг: можно быстро создать простые системы мониторинга и алертинга
Полезные пакеты для сервера
После установки Node.js рекомендую установить эти пакеты:
# Менеджер процессов для продакшена
npm install -g pm2
# Автоматическая перезагрузка при разработке
npm install -g nodemon
# Анализ безопасности
npm install -g npm-audit
# Обновление пакетов
npm install -g npm-check-updates
Интеграция с другими инструментами
Docker
Пример Dockerfile для Node.js-приложения:
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["node", "app.js"]
Nginx
Конфигурация Nginx для проксирования Node.js:
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Альтернативные решения
- Deno — современная альтернатива Node.js с встроенной безопасностью
- Bun — быстрый JavaScript-рантайм и пакетный менеджер
- Docker — использование готовых образов Node.js
Мониторинг и обслуживание
Для мониторинга Node.js-приложений используй:
# PM2 для мониторинга процессов
pm2 start app.js --name "my-app"
pm2 status
pm2 logs
pm2 monit
# Автозапуск при перезагрузке
pm2 startup
pm2 save
Где развернуть Node.js-приложение
Для тестирования и разработки отлично подойдёт VPS-сервер, где можно быстро экспериментировать с различными конфигурациями. Для серьёзных проектов лучше рассмотреть выделенный сервер с гарантированными ресурсами.
Заключение и рекомендации
Node.js — мощный инструмент для серверной разработки, и правильная установка — это первый шаг к успешному проекту. Вот мои рекомендации:
- Для продакшена: используй NodeSource с LTS-версией
- Для разработки: NVM даёт максимальную гибкость
- Для контейнеров: официальные Docker-образы
- Для экспериментов: любой способ, но помни про очистку
Не забывай регулярно обновлять Node.js и npm, следи за безопасностью через `npm audit`, и всегда тестируй на dev-окружении перед deployment’ом в продакшн. С правильно настроенным Node.js ты сможешь быстро создавать масштабируемые приложения и автоматизировать рутинные задачи.
Полезные ссылки для дальнейшего изучения:
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.