Гид по технологиям

Установка Node.js на Rocky Linux: AppStream и NVM

• 8 min read • Linux • Обновлено 21 Nov 2025
Node.js на Rocky Linux — AppStream и NVM
Node.js на Rocky Linux — AppStream и NVM

Схематичное изображение логотипа Node.js и окружения сервера

О чём эта статья

В статье объясняются два основных подхода к установке Node.js на Rocky Linux:

  • Установка из репозитория AppStream — для долгосрочных серверных развёртываний и производственного окружения.
  • Установка с помощью NVM (Node Version Manager) — для гибкости и работы с несколькими версиями на одной машине.

Также вы найдёте рекомендации по проверке установки, управлению версиями, устранению проблем, безопасной настройке и шаблоны задач для ролей разработчика и администратора.

Кому это нужно

  • Системным администраторам, которые разворачивают Node.js в production.
  • Разработчикам, которым важно переключаться между версиями.
  • Командам поддержки, которым нужно задокументировать процедуру установки и отката.

Краткие определения

Node.js — серверная среда выполнения JavaScript на базе движка V8. NVM — утилита для установки и управления несколькими версиями Node.js в пользовательской среде.

Предварительные требования

  • Сервер с Rocky Linux или совместимой RHEL-дистрибутивом. Обновите пакеты перед началом.
  • Пользователь с привилегиями root или sudo для установки пакетов и изменения системных настроек.
  • Доступ в Интернет для загрузки репозиториев и пакетов.

Метод 1 — Установка Node.js из репозитория AppStream

Когда применять этот метод:

  • Вы настраиваете сервер для длительной работы в production.
  • Приложение рассчитано на конкретную LTS-версию, поставляемую дистрибутивом.
  • Вам важна поддержка безопасности и удобство обновлений через системный менеджер пакетов.

Почему AppStream

AppStream предоставляет управляемые модули с версиями Node.js, отфильтрованными и протестированными для совместимости с вашей системой. Это упрощает автоматизацию обновлений и интеграцию с системными инструментами.

Настройка модуля репозитория

  1. Посмотрите доступные модули Node.js:
sudo dnf module list | grep nodejs

Вы увидите список модулей с версиями и профилями.

Проверка модуля репозитория Node.js в Rocky Linux

  1. Включите модуль нужной версии, например 14:
sudo dnf module enable nodejs:14

Подтвердите ввод “y” при необходимости.

Включение модуля репозитория Node.js 14

Опционально можно указать профиль установки (development, minimal, s2i):

sudo dnf module enable nodejs:14/minimal
  1. Проверьте состояние модуля:
sudo dnf module list nodejs

В выводе вы должны увидеть версию 14 с меткой включено [e].

Установка Node.js и npm

  1. Установите пакеты:
sudo dnf install nodejs npm

Подтвердите установку.

Установка Node.js и npm на Rocky Linux

  1. Проверьте установленные бинарники и версии:
which node
which npm
node --version
npm --version

Если всё успешно, команды покажут пути к /usr/bin и версии Node.js и npm.

Проверка путей и версий Node.js и npm

Когда этот метод не подходит

  • Если вам нужно иметь несколько параллельных версий Node.js для разных проектов на одном сервере.
  • Если нужны самые свежие функции из новых мажорных релизов, отсутствующие в репозитории дистрибутива.

В этом случае используйте NVM или контейнеры.

Метод 2 — Установка Node.js с помощью NVM

Когда применять этот метод:

  • Вы разработчик или тестировщик и часто переключаетесь между версиями.
  • Вы хотите изолировать версии Node.js per-user, не влияя на системный Node.

NVM устанавливается в домашний каталог пользователя и не требует прав root для управления версиями.

Установка NVM и окружения пользователя

Установка NVM

  1. Скачайте и запустите установочный скрипт:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash

Скрипт добавит конфигурацию в ~/.bashrc.

  1. Примените изменения:
source ~/.bashrc
  1. Проверьте, что команда nvm доступна:
command -v nvm
nvm --version
nvm --help

Вы должны увидеть вывод команды nvm и её версию.

Проверка установки NVM

Просмотр доступных версий Node.js

Список всех версий из удалённого репозитория:

nvm ls-remote

Фильтрация только LTS-релизов:

nvm ls-remote --lts

Пример вывода включает записи вида v14.17.6 (LTS: Fermium).

Установка конкретной версии Node.js

Установите нужную версию:

nvm install v16.8.0

Эта версия станет текущей активной для вашего пользователя. Проверьте версии:

node --version
npm --version

Установка конкретной версии Node.js через nvm

Установка последней LTS:

nvm install --lts

Также можно устанавливать по коду релиза, например dubnium (v10.x):

nvm install lts/dubnium

Установка Node.js по кодовому имени релиза через nvm

Управление несколькими версиями

Просмотр установленных версий:

nvm ls

Смена активной версии:

nvm use v16.8.0
nvm current

Установка LTS как текущей версии:

nvm use --lts

Переключение версий Node.js через nvm

Практические рекомендации для разработчика

  • Для каждого проекта храните файл .nvmrc с содержимым, например 14 или 16.8.0, чтобы команда могла выполнить nvm use и получить нужную версию.
  • Не используйте npm install -g для глобальных пакетов, если хотите избежать конфликтов между версиями; при необходимости устанавливайте пакеты локально в проект.
  • В CI используйте тот же nvm или Docker-образ с нужной версией Node.js для консистентности сборок.

Когда NVM не подходит

  • Если вам нужен Node.js на уровне всей системы и вы хотите управлять обновлениями централизованно.
  • Если вы разворачиваете сервисы systemd, которые ожидают системный node в PATH. Для сервисов лучше использовать системную установку или явные пути в unit-файлах.

Альтернативные подходы

  • NodeSource binary distributions — репозиторий с актуальными релизами Node.js, часто используют для production, когда требуется свежая версия, а не та, что есть в AppStream.
  • Сборка из исходников — даёт максимальный контроль, но требует больше времени и навыков.
  • Использование контейнеров Docker — изолирует окружение и фиксирует версии в образах.

Пример добавления репозитория NodeSource (альтернативный метод):

curl -fsSL https://rpm.nodesource.com/setup_16.x | sudo bash -
sudo dnf install -y nodejs

Этот подход устанавливает Node.js на уровне системы, но не через модуль AppStream.

Безопасность и жёсткая конфигурация

  • Запускайте Node.js-приложения от отдельного непривилегированного пользователя.
  • Ограничьте права файловой системы только необходимыми каталогами.
  • Используйте systemd для управления процессами и настроек рестарта, лимитов памяти и CPU.
  • Обновляйте npm-пакеты и следите за уязвимостями через npm audit.

Краткий чеклист безопасности:

  • Отдельный пользователь для сервиса
  • systemd unit с Restart=on-failure
  • Ограничение ресурсов через systemd или cgroups
  • Регулярные обновления и проверка npm audit

Советы по миграции и совместимости

  • Проверьте совместимость кода с новыми версиями Node.js, особенно при переходе через мажорные релизы.
  • Используйте утилиты типа nvm для тестирования приложения на нескольких версиях локально.
  • Для production сначала разверните новую версию в staging и прогоните набор тестов.

Тесты и критерии приёмки

Критерии приёмки установки:

  • node и npm доступны в PATH и возвращают ожидаемые версии.
  • Сервис успешно стартует и проходит smoke-тесты приложения.
  • Логи приложения не показывают ошибок инициализации, связанных с версией Node.js.

Минимальные тест-кейсы:

  1. Проверка бинарников: which node, node --version.
  2. Запуск простого HTTP-сервера на выбранной версии.
  3. Запуск unit/интеграционных тестов приложения в окружении новой версии.

Руководство действий для ролей

Администратор сервера:

  • Выбирает AppStream или NodeSource для системной установки.
  • Настраивает unit-файлы systemd.
  • Контролирует обновления через dnf.

Разработчик:

  • Устанавливает NVM в пользовательской среде.
  • Помещает .nvmrc в корень проекта.
  • Обновляет зависимости и проверяет совместимость.

Восстановление и откат

Если новая версия вызывает ошибки в production:

  1. Остановите обновлённый сервис.
  2. Откатитесь на предыдущую версию Node (AppStream: sudo dnf module reset nodejs + включение нужной версии; NVM: nvm use ).
  3. Перезапустите сервис и выполните smoke-тесты.

Шаблон SOP для установки Node.js в production

  1. Подготовка: резервное копирование конфигураций и проверка зависимости.
  2. Тестирование: развернуть на staging и выполнить полный набор тестов.
  3. Внедрение: на production применить выбранный способ установки.
  4. Верификация: проверить доступные endpoint, логи и метрики.
  5. Мониторинг: следить за производительностью и ошибками в первые 24–72 часа.

Технические уловки и подсказки

  • Если PATH не обновляется после установки nvm, выполните source ~/.bashrc или перезапустите терминал.
  • Для system-wide node при использовании nvm в service file указывайте абсолютный путь к бинарнику, например /home/deploy/.nvm/versions/node/v16.8.0/bin/node.
  • Для CI лучше использовать Docker-образ с фиксированной версией Node.js.

Частые ошибки и их исправления

Проблема: команда nvm не найдена в non-interactive shell. Решение: убедитесь, что инициализация nvm добавлена в файл, который читается non-interactive shell, или используйте явный source ~/.bashrc в скриптах.

Проблема: systemd-сервис не видит node из nvm. Решение: systemd запускает процессы вне пользовательской среды. Указывайте абсолютный путь к node или запустите через специальный пользовательский сервис с EnvironmentFile, содержащим нужные переменные.

Сравнение подходов — матрица

  • AppStream: безопасность и управляемость, ограниченная свежесть пакетов.
  • NodeSource: более свежие системные пакеты, установка на уровне системы.
  • NVM: гибкость, per-user изоляция, не подходит для system-wide служб без дополнительной настройки.
  • Docker: максимальная изоляция и повторяемость образов.

Показатели зрелости подхода

  • Установка AppStream — зрелый подход для продакшна на RHEL-подобных системах.
  • NVM — зрелый инструмент для разработчиков, широко используется в сообществе.

Краткий глоссарий

  • LTS — Long Term Support, версия с длительной поддержкой.
  • AppStream — модульный репозиторий пакетов в RHEL-подобных системах.
  • NVM — Node Version Manager.

Заключение

Оба метода установки имеют свои сильные стороны. Для серверов и production отвечает AppStream или системные репозитории. Для разработки и быстрого переключения версий удобен NVM. Выберите подход, основываясь на роли, задачах и требованиях к поддержке. Всегда тестируйте обновления в staging-пространстве перед развертыванием в production.

Важно: поддерживайте копии конфигураций и роллаут-план на случай отката.

Контрольный список перед установкой

  • [ ] Обновлены системные пакеты sudo dnf update.
  • Выполнен бэкап конфигураций.
  • Выбрана версия Node.js и способ установки.
  • Подготовлены smoke-тесты и процедуры отката.

Дополнительные ресурсы

Итог

  • AppStream подходит для стабильных серверных установок и централизованного управления пакетами.
  • NVM подходит для разработчиков и ситуаций, где необходимо переключаться между версиями.
  • Для production рассмотрите также NodeSource или контейнеры Docker при необходимости более свежих релизов.

Спасибо за внимание. Если нужна помощь с конкретной конфигурацией systemd, файлом .nvmrc или CI-пайплайном — опишите окружение, и я помогу составить пошаговую инструкцию.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро